.NET文件上传下载

原创 Laughing  2017-07-14 12:31  阅读 39 次 评论 0 条

孔子曾经说过:温故而知新可以为师矣。现在开发技术迭代速度太快了,ASP到ASP.NET到MVC到.Net Core,在加上过段时间就会出一个新的开发语言,作为开发表示真的亚历山大。。。。。。

前台代码

  1. <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebFormDemo.Default" %>  
  2.   
  3. <!DOCTYPE html>  
  4.   
  5. <html xmlns="http://www.w3.org/1999/xhtml">  
  6. <head runat="server">  
  7.     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
  8.     <title>首页</title>  
  9.     <script src="Scripts/jquery-1.9.1.js"></script>  
  10.     <script src="Scripts/bootstrap.js"></script>  
  11.     <link href="Content/bootstrap.css" type="text/css" rel="stylesheet" />  
  12.     <link href="Content/bootstrap-theme.css" type="text/css" rel="stylesheet" />  
  13.     <script type="text/javascript">  
  14.         $(function () {  
  15.             //SayHello();  
  16.             $("#btnAjaxUpload").click(function () {  
  17.                 var formData = new FormData();  
  18.                 var file = document.getElementById("files").files[0]  
  19.                 formData.append('myFile', file);  
  20.                 $.ajax({  
  21.                     url: "fileAjaxHandler.ashx",  
  22.                     type: "POST",  
  23.                     data: formData,  
  24.                     contentType: false,  
  25.                     processData: false,  
  26.                     success: function (obj) {  
  27.                         if (obj == 'true') {  
  28.                             alert(true);  
  29.                         }  
  30.                     }  
  31.                 });  
  32.             });  
  33.         });  
  34.   
  35.         function SayHello() {  
  36.             alert(document.getElementById("<%=btnUpload.ClientID%>").value);  
  37.         }  
  38.   
  39.         function UpLoad() {  
  40.             alert(111);  
  41.         }  
  42.     </script>  
  43. </head>  
  44. <body>  
  45.     <form id="form1" runat="server" class="form-control" method="post" enctype="multipart/form-data">  
  46.         <div class="form-horizontal">  
  47.             <asp:FileUpload ID="fileUpload" runat="server" />  
  48.             <input type="file" name="files" id="files" />  
  49.             <asp:Button runat="server" ID="btnUpload" OnClick="btnUpload_Click" CssClass="btn btn-default" Text="上传" OnClientClick="UpLoad();" />  
  50.             <asp:Button runat="server" ID="btnDownLoad" OnClick="btnDownLoad_Click" CssClass="btn btn-success" Text="下载" />  
  51.             <input type="button" id="btnAjaxUpload" value="Ajax上传" class="btn btn-danger" />  
  52.         </div>  
  53.     </form>  
  54. </body>  
  55. </html>  

CS代码

  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.IO;  
  4. using System.Linq;  
  5. using System.Web;  
  6. using System.Web.UI;  
  7. using System.Web.UI.WebControls;  
  8.   
  9. namespace WebFormDemo  
  10. {  
  11.     public partial class Default : System.Web.UI.Page  
  12.     {  
  13.         protected void Page_Load(object sender, EventArgs e)  
  14.         {  
  15.   
  16.         }  
  17.   
  18.         protected void btnUpload_Click(object sender, EventArgs e)  
  19.         {  
  20.             string fileName = fileUpload.FileName;  
  21.             HttpPostedFile content = fileUpload.PostedFile;  
  22.             if (File.Exists(AppDomain.CurrentDomain.BaseDirectory + "/Images/" + fileName))  
  23.             {  
  24.                 try  
  25.                 {  
  26.                     File.Delete(AppDomain.CurrentDomain.BaseDirectory + "/Images/" + fileName);  
  27.                     content.SaveAs(AppDomain.CurrentDomain.BaseDirectory + "/Images/" + fileName);  
  28.                 }  
  29.                 catch { }  
  30.             }  
  31.         }  
  32.   
  33.         protected void btnDownLoad_Click(object sender, EventArgs e)  
  34.         {  
  35.             Response.ContentType = "application/x-rar-compressed";  
  36.             Response.AddHeader("Content-Disposition""attach;filename=z.rar");  
  37.             Response.TransmitFile(Server.MapPath("Images/20170712.rar"));  
  38.         }  
  39.     }  
  40. }  

一般处理程序

  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.IO;  
  4. using System.Linq;  
  5. using System.Web;  
  6.   
  7. namespace WebFormDemo  
  8. {  
  9.     /// <summary>  
  10.     /// fileAjaxHandler 的摘要说明  
  11.     /// </summary>  
  12.     public class fileAjaxHandler : IHttpHandler  
  13.     {  
  14.   
  15.         public void ProcessRequest(HttpContext context)  
  16.         {  
  17.             context.Response.ContentType = "text/plain";  
  18.             var files = context.Request.Files;  
  19.             var file = files[0];  
  20.             file.SaveAs(context.Server.MapPath("Images/")+Guid.NewGuid()+file.FileName);  
  21.             using (FileStream fs=new FileStream(context.Server.MapPath("Images/") + Guid.NewGuid() + file.FileName, FileMode.CreateNew))  
  22.             {  
  23.                 var length = file.ContentLength;  
  24.                 byte[] bytes = new byte[length];  
  25.                 fs.Read(bytes, 0, length);  
  26.                 fs.Flush();  
  27.             }  
  28.             context.Response.Write("true");  
  29.         }  
  30.   
  31.         public bool IsReusable  
  32.         {  
  33.             get  
  34.             {  
  35.                 return false;  
  36.             }  
  37.         }  
  38.     }  
  39. }  
本文地址:https://www.lisen.me/net-file-upload-download.html
版权声明:本文为原创文章,版权归 木子网 所有,欢迎分享本文,转载请保留出处!

发表评论


表情