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

复制代码
  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 }); // 返回成功
               
        }
复制代码

以文件字节数组上传文件

 

 

posted @   Elite_Y  阅读(2876)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示