关于网页下载文件,使用数据流方式下载

关于文件下载,很多都是用href=‘文件地址‘,这样做是很不安全的,所以需要使用到文件流,以下代码用于下载一张图片。

     Response.BufferOutput = false;
        Response.Clear();
        Response.ContentType = "application/x-msdownload";
        Response.AppendHeader("Content-Disposition", "attachment; filename=" + "优惠券.jpg");
        Response.ContentType = "application/octstream";
        Response.CacheControl = "Private";
        System.IO.Stream stm = new System.IO.FileStream(Server.MapPath("~/uploadfiles/youhui/"+path), System.IO.FileMode.Open, System.IO.FileAccess.Read, System.IO.FileShare.Read);
        Response.AppendHeader("Content-length", stm.Length.ToString());
        System.IO.BinaryReader br = new System.IO.BinaryReader(stm);
        byte[] bytes;
        for (Int64 x = 0; x < (br.BaseStream.Length / 4096 + 1); x++)
        {
            bytes = br.ReadBytes(4096);
            Response.BinaryWrite(bytes);
            System.Threading.Thread.Sleep(5);
        }
时间: 2025-01-17 11:33:26

关于网页下载文件,使用数据流方式下载的相关文章

php下载文件 强制任意文件格式下载

用php下载一些文件,一般就是为了隐藏文件的真实下载地址才需要这样,否则这样会增加服务器负担,不如直接提供软件的地址. 一个简单的php文件下载源代码,虽不支持断点续传等,但是可以满足一些常用的需求了.php下载文件其实用一个a标签就能实现,比如 <a href="web/magento-1.8.1.0.zip">magento-1.8.1.0.zip</a> .但是遇到一些浏览器能识别的格式,比如.txt,.html,.pdf等,再用<a href=&q

解决各大浏览器下载文件乱码以及Firefox下载文件名不全问题

最近做项目,采用Spring MVC做控制层,下载文件的文件名总是在主流浏览器上显示乱码,Firfox不是乱码了,IE下又成了乱码.也是烦,IE总是独树一帜,没办法,只能让程序去适应,在网上也搜索了很多,但是解决的不理想,主要是IE11作为主流浏览器后,很多人之前提出的方案都失效了. 简单来说,之前使用request获取header中的user-agent,通过MSIE关键字来判断是否是IE浏览器,如果是IE浏览器,使用utf-8对文件名编码就可以了.然而,IE11的user-agent已经没有

多线程下载文件,以及断点下载

一:前言 多线程下载文件,可能有的同学没有过多的听说过,但是断点下载肯定是听过的,也就是说像讯雷,哪怕你把电脑重启了,讯雷重新启动后也会接着原来的地方下载,那么这是怎么做到的呢? 二:代码示例 直接给出代码, 2.1.经典代码 两行经典的代码分别为: //设置下载的开始及结束位置 conn.setRequestProperty("Range", "bytes="+start+"-"+end+""); //设置读写的起点位置 R

调用系统下载服务下载文件。监听下载完成拿到downloadid和filename

public class DownLoadAPK { @TargetApi(Build.VERSION_CODES.HONEYCOMB) public static long downloadAPK(DownloadManager downloadManager, String apkUrl, String name, String desc){ DownloadManager.Request request = new DownloadManager.Request(Uri.parse(apk

上传文件返回数据提示下载

摘要:  最近项目中出现上传文件返回的json数据会被提示下载,只有在ie10+中才会出现这个问题.前端使用jQuery的插件ajaxForm提交表单,后台返回的数据格式为json.代码如下: 后端Python: def jsonp(func): """Wraps JSONified output for JSONP requests.""" @wraps(func) def decorated_function(*args, **kwargs)

asp.net中用FileStream类实现下载文件功能,自定义下载路径,像IE下载一样

方法一: //这个值可以从配置文件读取,或者放个textbox让用户填 string path = "你的路径";FileStream outputStream = new FileStream(path , FileMode.Create); 方法二: 直接用Response内置对象把文件以流的形式传到前端,浏览器自动就会识别下载了

Win10系统IE浏览器能打开网页但无法下载文件的处理方法

在Win10系统中,很多没有安装下载软件的朋友默认就是使用IE来下载文件的,不过部分用户发现使用IE下载时出现点击无反应,无法下载的情况,那么如何解决此类问题呢?原因分析:出现此类情况大多是由于默认下载文件夹不存在引起的具体有如下几种方面.1.Win10系统安装好后修改了系统盘符修改系统盘符,IE浏览器默认的安装位置出现错误,导致IE无法运行,因此无法下载.建议:检查皇冠现金系统盘符是否和安装时的是一致的,若发生变化,把盘符重新改回和原来一致.2.默认下载文件夹不存在默认下载文件夹不存在,IE下

通过Java WebService接口从服务端下载文件

一. 前言 本文讲述如何通过webservice接口,从服务端下载文件.报告到客户端.适用于跨系统间的文件交互,传输文件不大的情况(控制在几百M以内).对于这种情况搭建一个FTP环境,增加了系统部署的复杂度和系统对外暴露的接口.通过在服务端读取文件,返回字节流到客户端的方式比较简单. 下面采用restful的接口形式,满足SOA架构接口要求.如下代码拷贝到eclipse中即可运行,功能自测试运行正常.样例代码的服务端和客户端在同一台PC上运行,放到不同PC上运行改一下发布服务和请求服务的IP地址

JavaWeb之文件上传、下载

时间:2016-12-17 18:07 --文件上传概述 上传不能使用BaseServlet 1.文件上传的作用    例如网络硬盘,就是用来上传和下载文件的. 2.文件上传对表单的限制    1)必须使用表单,而不能是超链接    2)表单的method必须是POST,而不能是GET    3)表单的enctype必须是multipart/form-data    4)在表单中添加type="file",即<input type="file" name=&q