<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問(wèn)答1問(wèn)答10問(wèn)答100問(wèn)答1000問(wèn)答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問(wèn)答文章1 問(wèn)答文章501 問(wèn)答文章1001 問(wèn)答文章1501 問(wèn)答文章2001 問(wèn)答文章2501 問(wèn)答文章3001 問(wèn)答文章3501 問(wèn)答文章4001 問(wèn)答文章4501 問(wèn)答文章5001 問(wèn)答文章5501 問(wèn)答文章6001 問(wèn)答文章6501 問(wèn)答文章7001 問(wèn)答文章7501 問(wèn)答文章8001 問(wèn)答文章8501 問(wèn)答文章9001 問(wèn)答文章9501
        當(dāng)前位置: 首頁(yè) - 科技 - 知識(shí)百科 - 正文

        ASP.NET文件上傳Upload的實(shí)現(xiàn)方法

        來(lái)源:懂視網(wǎng) 責(zé)編:小OO 時(shí)間:2020-11-27 22:36:24
        文檔

        ASP.NET文件上傳Upload的實(shí)現(xiàn)方法

        本文實(shí)例為大家分享了ASP.NET 文件上傳,供大家參考,具體內(nèi)容如下:1、最近應(yīng)項(xiàng)目開(kāi)發(fā)的需求要實(shí)現(xiàn)附件的異步上傳和下載。2、上傳:文件上傳到指定的路徑下,并返回上傳文件的信息給前端界面,如:文件的圖標(biāo)、上傳的文件名、文件的大小。3、上傳后,在前端界面上顯示上傳的文件信息,點(diǎn)擊文件名實(shí)現(xiàn)將上傳的文件下載到本地。4、先展示一下Demo運(yùn)行的效果圖。點(diǎn)擊提交后。點(diǎn)擊文件名實(shí)現(xiàn)下載到本地。5、下面就給出前臺(tái)代碼。
        推薦度:
        導(dǎo)讀本文實(shí)例為大家分享了ASP.NET 文件上傳,供大家參考,具體內(nèi)容如下:1、最近應(yīng)項(xiàng)目開(kāi)發(fā)的需求要實(shí)現(xiàn)附件的異步上傳和下載。2、上傳:文件上傳到指定的路徑下,并返回上傳文件的信息給前端界面,如:文件的圖標(biāo)、上傳的文件名、文件的大小。3、上傳后,在前端界面上顯示上傳的文件信息,點(diǎn)擊文件名實(shí)現(xiàn)將上傳的文件下載到本地。4、先展示一下Demo運(yùn)行的效果圖。點(diǎn)擊提交后。點(diǎn)擊文件名實(shí)現(xiàn)下載到本地。5、下面就給出前臺(tái)代碼。

        本文實(shí)例為大家分享了ASP.NET 文件上傳,供大家參考,具體內(nèi)容如下

        1、最近應(yīng)項(xiàng)目開(kāi)發(fā)的需求要實(shí)現(xiàn)附件的異步上傳和下載。

        2、上傳:文件上傳到指定的路徑下,并返回上傳文件的信息給前端界面,如:文件的圖標(biāo)、上傳的文件名、文件的大小。

        3、上傳后,在前端界面上顯示上傳的文件信息,點(diǎn)擊文件名實(shí)現(xiàn)將上傳的文件下載到本地。

        4、先展示一下Demo運(yùn)行的效果圖:

        點(diǎn)擊提交后:

        點(diǎn)擊文件名實(shí)現(xiàn)下載到本地:

        5、下面就給出前臺(tái)代碼:

        <!DOCTYPE html>
        <html>
        <head>
         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
         <title>Ajax Form - jQuery EasyUI Demo</title>
         <link rel="stylesheet" type="text/css" >
         <link rel="stylesheet" type="text/css" >
         <link rel="stylesheet" type="text/css" >
         <script type="text/javascript" src="http://code.jquery.com/jquery-1.6.1.min.js"></script>
         <script type="text/javascript" src="http://www.jeasyui.com/easyui/jquery.easyui.min.js"></script>
        </head>
        <body>
         <h2>Ajax Form Demo</h2>
         <div class="demo-info" style="margin-bottom:10px">
         <div class="demo-tip icon-tip"> </div>
         <div>Type in input box and submit the form.</div>
         </div>
        
         <div class="easyui-panel" title="Ajax Form" style="width:300px;padding:10px;">
         <form id="ff" action="api/Loding" method="post" enctype="multipart/form-data">
         <table>
         <tr>
         <td>Name:</td>
         <td><input name="name" class="f1 easyui-textbox"></input></td>
         </tr>
         <tr>
         <td>Email:</td>
         <td><input name="email" class="f1 easyui-textbox"></input></td>
         </tr>
         <tr>
         <td>Phone:</td>
         <td><input name="phone" class="f1 easyui-textbox"></input></td>
         </tr>
         <tr>
         <td>File:</td>
         <td><input name="file" class="f1 easyui-filebox"></input></td>
         </tr>
         <tr>
         <td></td>
         <td><input type="submit" value="提交"></input></td>
         </tr>
         </table>
         <input type="text" value="LodingTable" name="tableName" hidden="hidden" />
         </form>
         </div>
         <div>
         <img id="img" src="" width="20" height="20" />
         <a id="downLoad" downloadid="0" href="#"></a>
         <label>文件大小:</label>
         <label class="size"></label><button id="delete">刪除</button>
         <button id="loding">導(dǎo)入1</button>
         </div>
         <style scoped>
         .f1 {
         width: 200px;
         }
         </style>
         <script type="text/javascript">
         $(function () {
         $("#loding").hide();
         $("#delete").hide().click(function () {
         alert("刪除文件");
         });
         $("#loding").click(function () {
         var tUrl = '/api/Loding/Get';
         //var tJsonStr = '{"idInventoryPrice":"4","withdrawDetails":[{"cInvCode":"800487","cInvCodeSub":"00","iConverDiscount":"0","iUnitPrice":"9.9","iSalePrice":"9.9"},{"cInvCode":"800689","cInvCodeSub":"00","iConverDiscount":"0","iUnitPrice":"6.5","iSalePrice":"5.9"}]}';
         $.ajax({
         type: "Get",
         url: tUrl,
         dataType: "json",
         async: false,
         success: function (data) {
         alert(JSON.stringify(data));
         }
         });
         });
         $('#ff').form({
         success: function (data) {
         var json = JSON.parse(data);
         if (json.result == 1) {
         $("#delete").show();
         $("#img").attr("src", json.details[0].AttachmentNameTypeICO);
         $("#downLoad").attr("downloadid", json.details[0].ID); $("#downLoad").html(json.details[0].AttachmentName);
         $(".size").html(json.details[0].AttachSize + "KB");
         var tUrl = 'http://localhost:11703/api/Loding/DownLoad?ID=' + $("#downLoad").attr("downloadid");
         $("#downLoad").attr("href", tUrl);
         }
         else {
         alert(json.resultdetail);
         }
         }
         });
         });
         </script>
        </body>
        </html> 
        

        6、后臺(tái)上傳代碼:

        NameValueCollection nvf = HttpContext.Current.Request.Form;
         if (!Request.Content.IsMimeMultipartContent())
         {
         throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
         }
         string tempPath = "/Upload/" + DateTime.Now.ToString("yyyy-MM-dd/");
         string fileSaveLocation = HttpContext.Current.Server.MapPath("~" + tempPath);//附件的保存地址
         Dictionary<string, object> dic = new Dictionary<string, object>();
         if (!Directory.Exists(fileSaveLocation))
         {
         Directory.CreateDirectory(fileSaveLocation);
         }
         CustomMultipartFormDataStreamProvider provider = new CustomMultipartFormDataStreamProvider(fileSaveLocation);
         try
         {
         var result = await Request.Content.ReadAsMultipartAsync(provider).ContinueWith<Dictionary<string, object>>(x =>
         {
         var file = provider.FileData[0];
         FileInfo fileinfo = new FileInfo(file.LocalFileName);
         if (fileinfo.Length <= 0)
         {
         dic.Add("result", -1);
         dic.Add("resultdetail", "未上傳文件");
         }
         else
         {
         double? filelength = fileinfo.Length / 1024.0;
         if (filelength > 10 * 1024)
         {
         dic.Add("result", -1);
         dic.Add("resultdetail", "上傳文件不能大于10M");
         }
         else
         {
         string saveFileName = Guid.NewGuid().ToString() + fileinfo.Extension;
         fileinfo.CopyTo(Path.Combine(fileSaveLocation, saveFileName), true);
         fileinfo.Delete();
         dic.Add("result", 1);
         dic.Add("resultdetail", "上傳成功");
         dic.Add("realPath", file.LocalFileName);//附件保存的絕對(duì)路徑
         dic.Add("attachmentType", fileinfo.Extension);//附件類型
         dic.Add("attachmentName", Path.GetFileName(file.LocalFileName));//上傳的附件名
         dic.Add("attachSize", Convert.ToInt32(filelength));//附件大小KB
         dic.Add("aealPath", tempPath + saveFileName);//附件保存相對(duì)路徑
         }
         }
         return dic;
         }, TaskScheduler.FromCurrentSynchronizationContext());
         }
         catch (Exception ex)
         {
         return HandleJson.ToJson(ex.ToString(), false);
         }
         var isSuccess = dic["result"].TryToInt() == 1;
         var msg = dic["resultdetail"].TryToString();//返回上傳信息
         var realPath = string.Empty;//附件保存的絕對(duì)路徑
         var relativePath = string.Empty;//返回相對(duì)路徑
         var AttachSize = 0;//文件大小kB
         var AttachmentType = string.Empty;//文件擴(kuò)展名
         var AttachmentName = string.Empty;//原文件名
         if (isSuccess)
         {
         realPath = dic["realPath"].TryToString();
         relativePath = dic["aealPath"].TryToString();
         AttachSize = dic["attachSize"].TryToInt();
         AttachmentType = dic["attachmentType"].TryToString();
         AttachmentName = dic["attachmentName"].TryToString();
         }
        
         StringBuilder sql = new StringBuilder();
         if (isSuccess)
         {
         try
         {
         #region 獲取圖標(biāo)路徑
        
         var ICOPath = string.Empty;
         sql.Append(@"SELECT * FROM dbo.AttachmentType(NOLOCK) WHERE AttachmentType=@AttachmentType");
         var ICOTable = Common.HandleSQL.GetData(sql.ToString(), null, new SqlParameter[] { new SqlParameter("@AttachmentType", AttachmentType) });
         if (ICOTable.Rows.Count <= 0)
         {
         ICOPath = "";
         }
         else
         {
         ICOPath = ICOTable.Rows[0]["AttachmentNameTypeICO"].ToString();
         }
        
         #endregion 獲取圖標(biāo)路徑
        
         #region 保存上傳記錄
        
         sql.Clear();
         sql.Append(@"DECLARE @ID INT
        SELECT @ID=MAX(ID)+1 FROM dbo.Attachment(NOLOCK)
        IF(@ID IS NULL)
        BEGIN
        SET @ID=1
        END
        INSERT INTO dbo.Attachment
         ( ID ,
         AttachmentName ,
         AttachmentType ,
         RealPath ,
         AttachSize ,
         UpLoadDate ,
         UpLoadPerson ,
         UpLoadIPAddress
         )
        VALUES ( @ID , -- ID - int
         @AttachmentName , -- AttachmentName - nvarchar(max)
         @AttachmentType , -- AttachmentType - nvarchar(50)
         @RealPath , -- RealPath - nvarchar(max)
         @AttachSize , -- AttachSize - bigint
         GETDATE() , -- UpLoadDate - datetime
         @UpLoadPerson , -- UpLoadPerson - nvarchar(50)
         @UpLoadIPAddress -- UpLoadIPAddress - varchar(50)
         )
        SELECT * FROM dbo.Attachment(NOLOCK) WHERE ID=@ID;
        ");
         SqlParameter[] paras = new SqlParameter[] { new SqlParameter("@AttachmentName", AttachmentName),
         new SqlParameter("@AttachSize", AttachSize), new SqlParameter("@RealPath", relativePath),
         new SqlParameter("@AttachmentType", AttachmentType),new SqlParameter("@UpLoadPerson","魏小偉"),new SqlParameter("@UpLoadIPAddress",HandleLog.getIPAddress()) };
         var insert = GetData(sql.ToString(), null, paras);
         insert.Columns.Add("AttachmentNameTypeICO", typeof(string));
         insert.Rows[0]["AttachmentNameTypeICO"] = ICOPath;
         int ID = Convert.ToInt32(insert.Rows[0]["ID"].ToString());//上傳附件的ID
         return HandleJson.ToJson(insert, 0);
        
         #endregion 保存上傳記錄
         }
         catch (Exception ex)
         {
         if (System.IO.File.Exists(realPath))
         {
         File.Delete(realPath);
         }
         return HandleJson.ToJson(ex.ToString(), false);
         }
         }
         else
         {
         return HandleJson.ToJson(msg, false);
         }
        
        

        7、下載代碼:

        [HttpGet, Route("api/Loding/DownLoad")]
         public HttpResponseMessage DownLoad()
         {
         #region 獲取界面參數(shù)
        
         NameValueCollection nvc = HttpContext.Current.Request.QueryString;
         int ID = nvc["ID"].TryToInt();
         if (ID <= 0)
         {
         return HandleJson.ToJson("傳入?yún)?shù)錯(cuò)誤", false);
         }
        
         #endregion 獲取界面參數(shù)
        
         #region SQL
        
         StringBuilder sql = new StringBuilder();
         sql.Append(@"SELECT * FROM dbo.Attachment(NOLOCK) WHERE ID=@ID ");
        
         #endregion SQL
        
         #region 執(zhí)行SQL
        
         var dt = HandleSQL.GetData(sql.ToString(), null, new SqlParameter[] { new SqlParameter("@ID", ID) });
         if (dt.Rows.Count <= 0)
         {
         return HandleJson.ToJson("未找到下載文件", false);
         }
         var filePath = HttpContext.Current.Server.MapPath("~" + dt.Rows[0]["RealPath"].TryToString());//下載文件的絕對(duì)路徑
         string fileName = dt.Rows[0]["AttachmentName"].TryToString();//下載的文件名
        
         #endregion 執(zhí)行SQL
        
         #region 下載文件并添加下載記錄
        
         try
         {
         //var FilePath = System.Web.Hosting.HostingEnvironment.MapPath(@"~/download/" + fileName);
         var stream = new FileStream(filePath, FileMode.Open);
         HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK);
         response.Content = new StreamContent(stream);
         response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
         response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
         {
         FileName = fileName
         };
        
         #region 添加下載記錄
        
         sql.Clear();
         SqlParameter[] paras = new SqlParameter[] { new SqlParameter("@ID", ID), new SqlParameter("@DownLoadPerson", "魏小偉"), new SqlParameter("@DownLoadIP", HandleLog.getIPAddress()) };
         sql.Append(@"DECLARE @AutoID INT
        SELECT @AutoID=MAX(AutoID)+1 FROM dbo.AttachmentDowLoadLog(NOLOCK)
        IF(@AutoID IS NULL)
        BEGIN
        SET @AutoID=1
        END
        INSERT INTO dbo.AttachmentDowLoadLog
         ( AutoID ,
         ID ,
         DownLoadPerson ,
         DownLoadDate ,
         DownLoadIP
         )
        VALUES ( @AutoID , -- AutoID - int
         @ID , -- ID - int
         @DownLoadPerson , -- DownLoadPerson - nvarchar(max)
         GETDATE() , -- DownLoadDate - datetime
         @DownLoadIP -- DownLoadIP - nvarchar(50)
         );");
         execSQL(sql.ToString(), null, paras);
        
         #endregion 添加下載記錄
        
         return response;
         }
         catch
         {
         return new HttpResponseMessage(HttpStatusCode.NoContent);
         }
        
         #endregion 下載文件并添加下載記錄
         }
        
        
        

        8、以上只是我個(gè)人的一個(gè)小Demo,有不對(duì)或需要改進(jìn)的地方還請(qǐng)大家多多提點(diǎn)!

        精彩專題分享:ASP.NET文件上傳匯總 

        聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        ASP.NET文件上傳Upload的實(shí)現(xiàn)方法

        本文實(shí)例為大家分享了ASP.NET 文件上傳,供大家參考,具體內(nèi)容如下:1、最近應(yīng)項(xiàng)目開(kāi)發(fā)的需求要實(shí)現(xiàn)附件的異步上傳和下載。2、上傳:文件上傳到指定的路徑下,并返回上傳文件的信息給前端界面,如:文件的圖標(biāo)、上傳的文件名、文件的大小。3、上傳后,在前端界面上顯示上傳的文件信息,點(diǎn)擊文件名實(shí)現(xiàn)將上傳的文件下載到本地。4、先展示一下Demo運(yùn)行的效果圖。點(diǎn)擊提交后。點(diǎn)擊文件名實(shí)現(xiàn)下載到本地。5、下面就給出前臺(tái)代碼。
        推薦度:
        標(biāo)簽: 文件 上傳 方法
        • 熱門焦點(diǎn)

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 午夜高清免费在线观看| 日本成年免费网站| 亚洲女同成人AⅤ人片在线观看| 亚洲人成网站色7799| 在线观看免费精品国产| 亚洲美国产亚洲AV| 日韩中文无码有码免费视频| 亚洲精品第一国产综合亚AV| 国产又大又黑又粗免费视频 | 亚洲日韩精品无码AV海量| 国产精品视频免费一区二区| 亚洲人成77777在线播放网站不卡| 最新中文字幕电影免费观看| 看Aⅴ免费毛片手机播放| 亚洲日本一区二区一本一道| 久久久久久久国产免费看 | 免费看片免费播放| 黄床大片30分钟免费看| 久久精品亚洲男人的天堂| a级片在线免费看| 亚洲福利电影在线观看| 成人午夜视频免费| 一级人做人爰a全过程免费视频| 亚洲一区爱区精品无码| 中文字幕免费高清视频| 亚洲成av人片在线天堂无| 久久久久亚洲?V成人无码| 最近2019免费中文字幕视频三| 国产精品高清视亚洲精品| 全部免费国产潢色一级| 国产成人无码区免费内射一片色欲| 亚洲精品视频在线| 国产高清免费在线| 免费精品一区二区三区第35| 亚洲人成综合网站7777香蕉 | 亚洲最新永久在线观看| 成年美女黄网站18禁免费| 国产精品极品美女自在线观看免费| 亚洲视频国产精品| 亚洲午夜成人精品电影在线观看| 无码国产精品一区二区免费3p |