Asp.Net web 文件服務快速搭建

簡述 

    內容具體分為兩種分為上傳和下載部分,服務搭載仍然選擇IIS,內容還是相對簡單,只是內部使用,沒有使用太多的優化的技巧,net環境為4.7

上傳服務

  上傳需要注意的是,HttpPostedFileBase 不支持大文件傳輸,文件達到几M的時候就會溢出,所以需要修改web.config,拓展到1g大小

  <system.webServer>
    <handlers>
      <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
      <remove name="OPTIONSVerbHandler" />
      <remove name="TRACEVerbHandler" />
      <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
    </handlers>
	  <security>
		  <requestFiltering>
			  <!-- 单位:字节(1000M) -->
			  <requestLimits maxAllowedContentLength="1048576000" />
		  </requestFiltering>
	  </security>
  </system.webServer>
	<system.webServer>
		<httpProtocol>
			<customHeaders>
				<add name="Access-Control-Allow-Origin" value="*" />
				<add name="Access-Control-Allow-Headers" value="*" />
				<add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE" />
			</customHeaders>
		</httpProtocol>
	</system.webServer>

參考代碼如下

 public  string  UploadFile(String project,String  stage,string item,string mc,string type,string fileid, HttpPostedFileBase file)
 {
     string msg = "";
     if (file != null && file.ContentLength > 0)
     {
    

             // 返回成功消息
             msg = "文件上传成功";
     }
     else
     {
         // 返回错误消息
         msg = "请选择要上传的文件";
     }
    
     return msg;
 }

下載

  下載部分更為簡單,指定服務器的文件所在目錄,可以非常簡單實現文件下載

       public string download(String project, String stage, string item, string mc, string type, string fileid,string filename)
        {

            //Uploads/ok2build/All/TI/SMT前段Process FMEA/通訊錄.xls

            string filePath = Server.MapPath("~/Uploads"+"/"+type+"/"+stage+"/"+mc+"/"+project+"/"+item+"/"+filename);//路径
            FileInfo fileinfo = new FileInfo(filePath);
            Response.Clear();         //清除缓冲区流中的所有内容输出
            Response.ClearContent();  //清除缓冲区流中的所有内容输出
            Response.ClearHeaders();  //清除缓冲区流中的所有头
            Response.Buffer = true;   //该值指示是否缓冲输出,并在完成处理整个响应之后将其发送
            Response.AddHeader("Content-Disposition", "attachment;filename=" + filename);
            Response.AddHeader("Content-Length", fileinfo.Length.ToString());
            Response.AddHeader("Content-Transfer-Encoding", "binary");
            Response.ContentType = "application/unknow";  //获取或设置输出流的 HTTP MIME 类型
            Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312"); //获取或设置输出流的 HTTP 字符集
            Response.TransmitFile(filePath);

            return "OK";
        }

相关推荐

  1. Asp.Net web 文件快速

    2024-02-23 16:46:01       49 阅读
  2. 方便快捷文件rsync文件传输服务器

    2024-02-23 16:46:01       33 阅读
  3. 文件服务器

    2024-02-23 16:46:01       64 阅读
  4. Hadoop快速指南

    2024-02-23 16:46:01       32 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-23 16:46:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-23 16:46:01       101 阅读
  3. 在Django里面运行非项目文件

    2024-02-23 16:46:01       82 阅读
  4. Python语言-面向对象

    2024-02-23 16:46:01       91 阅读

热门阅读

  1. 【机器学习】机器学习是什么?

    2024-02-23 16:46:01       51 阅读
  2. SQL中为什么不要使用1=1

    2024-02-23 16:46:01       53 阅读
  3. HW面试常见知识点(新手认识版)

    2024-02-23 16:46:01       49 阅读
  4. android recyclerview 中的animation滚动中动画停止了?

    2024-02-23 16:46:01       50 阅读
  5. Android自编译Pixel3内核加入KernelSU

    2024-02-23 16:46:01       53 阅读
  6. 配置docker 支持GPU方法(Nvidia GPU)

    2024-02-23 16:46:01       56 阅读
  7. Cookies

    2024-02-23 16:46:01       42 阅读
  8. kafka消费消息并对消息进行RSA公钥解密

    2024-02-23 16:46:01       46 阅读
  9. 【Ant Design】【List】

    2024-02-23 16:46:01       50 阅读
  10. 服务器防火墙的应用技术有哪些类型?

    2024-02-23 16:46:01       48 阅读