MVC 以内容字节数组形式 实现文件上传 下载

使用GZip解压上传并以字节数组形式下载文件的方法
本文介绍了一个通过GZip解压上传文件,并以字节数组形式进行下载的方法,包括从服务器获取文件、解压文件内容以及设置响应头以实现文件下载。
  public ActionResult DownloadFiles(int Id)
        {
            var client = new SysModuleServiceReference.SysModuleServiceClient();
            FilesDTO files = client.GetFiles(Id); // 根据id查找文件名 内容字节数组
            GZip zip = new GZip();                // 解压包类
            files.FileContent = zip.DecompressStream(files.FileContent); // 解压上传文件内容
            Response.Charset = "UTF-8";           
            Response.ContentEncoding = System.Text.Encoding.GetEncoding("UTF-8");
            Response.ContentType = "application/octet-stream";
            Response.AddHeader("Content-Disposition", "attachment; filename=" + Url.Encode(files.FileName));
            Response.BinaryWrite(files.FileContent);
            Response.Flush();
            Response.End();
            return new EmptyResult();


        }

以文件字节数组下载文件

 public ActionResult UploadPic(HttpPostedFileBase fileData)
        {
           
                    var client = new SysModuleServiceReference.SysModuleServiceClient();
                    FilesDTO files = new FilesDTO(); 
                    GZip zip = new GZip();                                // 解压包类
                    string fileName = Path.GetFileName(fileData.FileName);// 原始文件名称
                    byte[] buffer = new byte[fileData.InputStream.Length + 1]; // 上传文件字节数组大小
                    fileData.InputStream.Read(buffer, 0, buffer.Length);  // 把上传文件的大小放入 buffer里
                    buffer = zip.CompressStream(buffer);                  // 为了节省空间 压缩文件
                    files.FileExtName = Path.GetExtension(fileName); // 文件扩展名
                    files.FileContent = buffer;
                    files.FileName = fileName;
                    files.FileTypeValue = int.Parse(Request["FileTypeValue"]);
                    files.FKId = int.Parse(Request["FKId"]);
                    files.InPerId = this.CustomContext.UserID;
                    files.InTime = DateTime.Now;
                    client.AddFiles(files);                          //上传服务器
                    return Json(new { Success = true, FileName = fileName, SaveName = fileName }); // 返回成功
               
        }

以文件字节数组上传文件

 

 

转载于:https://www.cnblogs.com/yhyjy/archive/2013/01/24/2874202.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值