上傳圖片總是失敗,MVC中使用jquery uploadify上傳圖片報302錯誤

 2023-11-18 阅读 20 评论 0

摘要:使用jquery uploadify上傳圖片報302錯誤研究了半天,發現我上傳的action中有根據session判斷用戶是否登錄,如果沒有登錄就跳到登陸頁,所以就出現了302跳轉錯誤。原來更新了flash的版本以后,通過uploadify獲取不到session的值。我目前的解決辦法是&

使用jquery uploadify上傳圖片報302錯誤研究了半天,發現我上傳的action中有根據session判斷用戶是否登錄,如果沒有登錄就跳到登陸頁,所以就出現了302跳轉錯誤。原來更新了flash的版本以后,通過uploadify獲取不到session的值。我目前的解決辦法是:

Global.asax.cs中:

     /// <summary>/// 解決uploadif上傳無法獲取Cookie的情況/// </summary>/// <param name="sender"></param>/// <param name="e"></param>protected void Application_BeginRequest(object sender, EventArgs e){try{HttpRequest request = HttpContext.Current.Request;foreach (string k in request.Form.Keys){if (k.IndexOf("cookie_") >= 0)AppendingCookies(k.Remove(0, 7), request.Form[k], request);}}catch { }}private void AppendingCookies(string cookieName, string cookieValue, HttpRequest request){HttpCookie hc = request.Cookies.Get(cookieName);if (null == hc)hc = new HttpCookie(cookieName);hc.Value = cookieValue;request.Cookies.Set(hc);}

上傳方法:

        [HttpPost]public JsonResult Upload(HttpPostedFileBase fileData){string cookie_LoginUserKey = Request.Form["cookie_LoginUserKey"];if (realCookie != cookie_LoginUserKey){return Json("上傳失敗");}if (fileData != null){try{string CompanyId = ManageProvider.Provider.Current().CompanyId;Sys_Company model = companybll.GetEntity(CompanyId);string CompanyCode = model.Code;string folder = DateTime.Now.ToString("yyyyMM");// 文件上傳后的保存路徑string filePath = Server.MapPath("~/Uploads/" + CompanyCode + "/Web/" + folder + "/");if (!Directory.Exists(filePath)){Directory.CreateDirectory(filePath);}string fileName = Path.GetFileName(fileData.FileName);// 原始文件名稱string fileExtension = Path.GetExtension(fileName); // 文件擴展名string saveName = Guid.NewGuid().ToString() + fileExtension; // 保存文件名稱int filesize = fileData.ContentLength / 1024;if (filesize > 1024 || filesize <= 2 || (fileExtension != ".jpg" && fileExtension != ".png" && fileExtension != ".gif")){return Json(new { Success = false, Message = "上傳失敗!\r請上傳jpg/png格式圖片,文件大小不要超過2MB" }, JsonRequestBehavior.AllowGet);}else{fileData.SaveAs(filePath + saveName);return Json(new { Success = true, FilePath = "/Uploads/"  + CompanyCode + "/Web/" + folder +"/"+ saveName, SaveName = saveName });}}catch (Exception ex){return Json(new { Success = false, Message = ex.Message }, JsonRequestBehavior.AllowGet);}}else{return Json(new { Success = false, Message = "請選擇要上傳的文件!" }, JsonRequestBehavior.AllowGet);}}

視圖中:

  $(document).ready(function () {$('#file_upload').uploadify({uploader: '/School/Sites/Upload',swf: '/Content/Scripts/uploadify3.2.1/uploadify.swf',buttonText: "請選擇上傳圖片",height: 24,width: 120,'fileExt': '*.jpg;*.gif,*.png',                 //允許上傳的文件格式為*.jpg,*.gif,*.png//'fileDesc': 'Web Image Files(.JPG,.GIF,.PNG)',  //過濾掉除了*.jpg,*.gif,*.png的文件//'queueID': 'fileQueue','sizeLimit': '2048000',                         //最大允許的文件大小為2M//'auto': false,                                  //需要手動的提交申請'multi': false,                                 //一次只允許上傳一張圖片formData: { @foreach(string k in Request.Cookies.AllKeys){@:'cookie_@(k)' : '@Request.Cookies[k].Value',}'': ''},'onUploadSuccess': function (file, data, response) {var obj = jQuery.parseJSON(data); //把返回的Json序列轉化為obj對象if (obj.Success) {//alert(obj.FilePath);$('#PictureUrl').val(obj.FilePath);$('#pic').attr("src", obj.FilePath);$('#pic').show();}elsealert(obj.Message);}});});

?

上傳圖片總是失敗,轉載于:https://www.cnblogs.com/yechangzhong-826217795/p/5856232.html

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/2/174573.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息