MVC中使用jquery uploadify上传图片报302错误
2016-09-09 13:14
585 查看
使用jquery uploadify上传图片报302错误研究了半天,发现我上传的action中有根据session判断用户是否登录,如果没有登录就跳到登陆页,所以就出现了302跳转错误。原来更新了flash的版本以后,通过uploadify获取不到session的值。我目前的解决办法是:
Global.asax.cs中:
上传方法:
视图中:
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(); } else alert(obj.Message); } }); });
相关文章推荐
- 在php中使用jquery uploadify进行多图片上传
- MVC文件上传07-使用客户端jQuery-File-Upload插件和服务端Backload组件裁剪上传图片
- jquery.uploadify.min.js上传图片使用
- firefox浏览器用jquery.uploadify插件上传时报HTTP 302错误
- jquery.uploadify+spring mvc实现上传图片
- jQuery Uploadify 上传插件出现Http Error 302 错误的解决办法
- JQuery uploadify上传组件的使用方法
- jquery+uploadify+springmvc文件上传
- MVC 4 结合jquery.uploadify 上传实例
- jQuery-File-Upload图片上传组件简要使用指南(挥泪共享)
- JQuery.uploadify 上传文件插件的使用详解 for ASP.NET
- 使用jquery.uploadify上传文件
- 使用jQuery Uploadify借助Dorado平台实现批量上传文件动态显示实时上传文件状态
- asp.net使用jQuery Uploadify上传附件示例
- jquery.uploadify插件实现图片上传和预览效果
- ASP.NET MVC 使用Jquery Uploadify 在非IE浏览器下Http Error的解决方案
- 关于文件上传jQuery插件jquery.uploadify的使用心得
- JQuery uploadify 上传插件使用
- 在asp.net中使用jquery.uploadify-3.1实现上传
- 使用 Jquery AjaxUpload 上传图片