关于Asp.Net中的编程实现下载
2014-12-17 08:37
316 查看
经常在论坛看见有人求Asp.Net中编程实现下载的代码,有些还希望能断点续传什么的。
其实问题的关键在于权限。B/S和C/S不仅仅是外观上的区别而已。
下载,顾名思义是客户端要下,所以载。你硬塞給人家那不叫下载,那其实是“从服务器‘上传’到客户端”。
有些人的想法是向客户端“写一个”你打算他下载的“文件”,在C/S结构中是没有问题的,因为C端来写。但是在Asp.net却是不行的,一定会弹出权限的错误,因为B/S结构中没有个C端給你,S端是不可能获得客户机硬盘的写权限的,要不还不是世界大乱了?
上传和下载的根本区别在于一个是“本地主动送”,一个是“本地主动收”。他们都需要有一方来“主动”,上传需要对远程有写权限,下载需要对远程有读权限。现在的情况是服务器根本对客户端没有读写权限,所以实际上在B/S里写这种代码没有用。
换个思路,我不要服务器主动,我让客户端主动可以吗?
1、IE的下载功能。包括Http协议中规定的下载(对IE本身无法打开的连接文件类型会提示用户是否下载)这是最方便的,你只要給个超级连接就行了,一点代码都不用。局限性在于只对“当前IE无法打开的文件类型”有效。这就是为什么同个东西有些人点了打开浏览,有些人是提示下载,就是浏览器不同(包括组件、版本等)。
2、javascript主动向服务器请求文件,并由js向硬盘上写。(本人没尝试过,所以到底可行与否不知道)
3、由浏览器以外的客户端程序来执行写操作。C/S版因为有客户端,简单的和什么一样。。。B/S版里有什么是“浏览器以外的客户端程序”而又是你可以访问的??没错,木马!放个木马绝对没问题(废话。。)至于怎么放那就是另一方面的事情了。。。
4、让客户端以为这是IE的插件(这也许是,也许不是,不是你就要伪装来骗它),这是3721等喜欢使用的方法。局限性在于和浏览器的设置有关,如果设置关掉相应的自动选项,你急也没办法!
所以,完全用Asp.net在服务器上主观要求客户端“下载”,是很难以实现的。需要配合其他手段 。
其实问题的关键在于权限。B/S和C/S不仅仅是外观上的区别而已。
下载,顾名思义是客户端要下,所以载。你硬塞給人家那不叫下载,那其实是“从服务器‘上传’到客户端”。
有些人的想法是向客户端“写一个”你打算他下载的“文件”,在C/S结构中是没有问题的,因为C端来写。但是在Asp.net却是不行的,一定会弹出权限的错误,因为B/S结构中没有个C端給你,S端是不可能获得客户机硬盘的写权限的,要不还不是世界大乱了?
上传和下载的根本区别在于一个是“本地主动送”,一个是“本地主动收”。他们都需要有一方来“主动”,上传需要对远程有写权限,下载需要对远程有读权限。现在的情况是服务器根本对客户端没有读写权限,所以实际上在B/S里写这种代码没有用。
换个思路,我不要服务器主动,我让客户端主动可以吗?
1、IE的下载功能。包括Http协议中规定的下载(对IE本身无法打开的连接文件类型会提示用户是否下载)这是最方便的,你只要給个超级连接就行了,一点代码都不用。局限性在于只对“当前IE无法打开的文件类型”有效。这就是为什么同个东西有些人点了打开浏览,有些人是提示下载,就是浏览器不同(包括组件、版本等)。
2、javascript主动向服务器请求文件,并由js向硬盘上写。(本人没尝试过,所以到底可行与否不知道)
3、由浏览器以外的客户端程序来执行写操作。C/S版因为有客户端,简单的和什么一样。。。B/S版里有什么是“浏览器以外的客户端程序”而又是你可以访问的??没错,木马!放个木马绝对没问题(废话。。)至于怎么放那就是另一方面的事情了。。。
4、让客户端以为这是IE的插件(这也许是,也许不是,不是你就要伪装来骗它),这是3721等喜欢使用的方法。局限性在于和浏览器的设置有关,如果设置关掉相应的自动选项,你急也没办法!
所以,完全用Asp.net在服务器上主观要求客户端“下载”,是很难以实现的。需要配合其他手段 。
相关文章推荐
- 关于Asp.Net中的编程实现下载
- 关于Asp.Net中的编程实现下载
- 例程:ASP.NET实现从MSSQL中分块断点续传下载image字段内容
- 关于ASP.NET网页编程的几个技巧
- Ajax 实现在WebForm中拖动控件并即时在服务端保存状态数据 (Asp.net 2.0)(示例代码下载)
- Asp.net 2.0 用 FileUpload 控件实现多文件上传 用户控件(示例代码下载)
- 关于ASP.NET网页编程的几个技巧
- http://fason.nease.net里有一些关于asp的树的下载
- Asp.net 2.0 GridView的几个事件(如实现: 行的双击/单击/捕捉键盘按键/鼠标悬浮/移出效果)(示例代码下载)
- [收藏]关于用Asp.Net论坛发帖软件的实现
- 使文件下载的自定义连接支持 FlashGet 的断点续传多线程链接下载! C#/ASP.Net 实现!
- ASP.NET实现下载功能的中文文件名乱码处理(收集)
- ASP.NET实现下载功能的中文文件名乱码处理
- ASP.NET实现下载功能的中文文件名乱码处理
- 使文件下载的自定义连接支持 FlashGet 的断点续传多线程链接下载! C#/ASP.Net 实现!
- ASP.NET中实现直接从网页上下载文件,而不须引用文件URL来下载
- 使文件下载的自定义连接支持 FlashGet 的断点续传多线程链接下载! C#/ASP.Net 实现
- Asp.net 2.0 用 FileUpload 控件实现多文件上传 用户控件(示例代码下载)
- 关于asp.net中文文件名超长的下载问题
- AjaxPro.NET框架实现服务端即时数据验证(Asp.net 2.0)(示例代码下载)