当前位置:编程问答 > C#/ASP.NET >

文件的读取权限

文件上传到服务器后,比喻上传到服务器的  down 目录下
( http://192.168.1.8/down )

在 default.aspx 页面上
<a href='../down/abc.txt'    target='_blank'> 打开 </a>   

打开abc.txt文件有两个方法:
1、运行程序,在 default.aspx 页面上 点击 "打开"  即可打开 abc.txt文件 
2、直接在 ie  地址上输入:http://192.168.1.8/down/abc.txt  也可打开 abc.txt文件


我想只能通过方法1 来打开如何做?




--------------------编程问答-------------------- string filePath = Server.MapPath("");
FileStream fs = new FileStream(filePath, FileMode.Open);
byte[] bytes = new byte[(int)fs.Length];
fs.Read(bytes, 0, bytes.Length);
fs.Close();
Response.ContentType = "application/octet-stream";
Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8));
Response.BinaryWrite(bytes);
Response.Flush();
Response.End(); --------------------编程问答-------------------- 我的意思是:
只能通过:
运行程序,在 default.aspx 页面上 点击 "打开" 即可打开 abc.txt文件 

 
而直接在 ie 地址上输入:http://192.168.1.8/down/abc.txt 不能打开 abc.txt文件
可能楼上理解错了,呵呵 --------------------编程问答-------------------- 等着 收藏 学习 --------------------编程问答-------------------- 很简单在你的文件名后面加个#就ok了
--------------------编程问答-------------------- http://192.168.1.8/down/abc.txt#

但是如果客户输入的时候把#号删除
http://192.168.1.8/down/abc.txt
也同样可以打开该文件啊!

这个方法不可行啊! --------------------编程问答-------------------- --------------------编程问答-------------------- 还有一个办法就是 url 重写,把
<a href='../down/abc.txt' target='_blank'> 打开 </a>  
这个地址隐藏了 --------------------编程问答-------------------- a href 里不要写文件的实际地址,新建一个下载的页面比如down.aspx,然后把文件名等作为参数传给down.aspx这个下载页面,比如<a href="down.aspx?id=abc&type=txt">下载</a>,然后在down.aspx后台代码里处理Request参数并拼接成实际下载地址,再用1楼的代码输出即可。 --------------------编程问答-------------------- 路过看看 --------------------编程问答--------------------
引用 8 楼 nix1985 的回复:
a href 里不要写文件的实际地址,新建一个下载的页面比如down.aspx,然后把文件名等作为参数传给down.aspx这个下载页面,比如<a href="down.aspx?id=abc&amp;type=txt">下载</a>,然后在down.aspx后台代码里处理Request参数并拼接成实际下载地址,再用1楼的代码输出即可。

up. --------------------编程问答-------------------- 把文件存储到数据库中 --------------------编程问答-------------------- --------------------编程问答--------------------
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,