ajaxFileUpload上传文件后提示下载的问题
在某些版本浏览器下ajaxFileUpload上传文件会提示下载,
1:为什么?
可以观察到,即便返回 JsonResult 在返回的头中也没有任何消息体,直接理解为文本了。
2:解决方案
前端:
function uploadImg(fimgi) {
if (("#fimg" + fimgi).val().length > 0) { //alert(("#fimg" + fimgi).val().length > 0) { //alert(("#fimg" + fimgi).val().length);}
else {
alert("请选择图片");
return;
}
.ajaxFileUpload({ type: 'post', url: "/product/UploadProductImage?fimgi=" + fimgi, secureuri: false, fileElementId: 'fimg' + fimgi, dataType: "json", success: function (data) { alert("上传成功!"); //alert(data.O);.ajaxFileUpload({ type: 'post', url: "/product/UploadProductImage?fimgi=" + fimgi, secureuri: false, fileElementId: 'fimg' + fimgi, dataType: "json", success: function (data) { alert("上传成功!"); //alert(data.O);("#Img" + fimgi).val(data.O);
},
error: function (XMLHttpRequest, textStatus, e) {
alert(textStatus);
alert(e);
}
});
}
后台改为范围ContentResult,且,ContentType = "text/html"。
public ContentResult UploadProductImage(int fimgi)
{
HttpPostedFileBase head = this.Request.Files["fimg"+fimgi];if (head == null)
{
return new ContentResult
{
Content = new JavaScriptSerializer { MaxJsonLength = int.MaxValue }.Serialize(new R() { F = 1, M = "对不起,无上传内容!" }),
ContentType = "text/html"
};
}var supportedTypes = new[] { "jpg", "jpeg", "png", "gif", "bmp" };
var fileExt = System.IO.Path.GetExtension(head.FileName).Substring(1);
if (!supportedTypes.Contains(fileExt))
{
return new ContentResult
{
Content = new JavaScriptSerializer { MaxJsonLength = int.MaxValue }.Serialize(new R() { F = 1, M = "对不起,只能上传 jpg, jpeg, png, gif, bmp!" }),
ContentType = "text/html"
};
}if (head.ContentLength > 1024 * 1024)
{
return new ContentResult
{
Content = new JavaScriptSerializer { MaxJsonLength = int.MaxValue }.Serialize(new R() { F = 1, M = "对不起,大小超出限制1M!" }),
ContentType = "text/html"
};
}var r = new Random();
var filename = Guid.NewGuid().ToString("N") + "." + fileExt;
string path = this.Server.MapPath("~/upload/product");if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}var filepath = Path.Combine(path, filename);
head.SaveAs(filepath);
string webPath = "/upload/product/" + filename;return new ContentResult
{
Content = new JavaScriptSerializer { MaxJsonLength = int.MaxValue }.Serialize(new R()
{
F = 0,
M = "上传成功,保存为:" + webPath + "!",
O = webPath
}),
ContentType = "text/html"
};
}本文转自最课程陆敏技博客园博客,原文链接:http://www.cnblogs.com/luminji/p/4677103.html,如需转载请自行联系原作者
ajaxFileUpload上传文件后提示下载的问题相关推荐
- jquery-form中ajaxSubmit提交文件,以及解决ie9下上传文件后自动下载问题
需要引用jquery-form.js 下载地址http://plugins.jquery.com/form/ 1.之前的项目一直使用formData的方式上传文件到后台处理,但新项目要求支持ie9,i ...
- 解决ajaxFileUpload上传文件在ie浏览器中出现下载框的问题
在开发时用到ajaxFileUpload上传文件,在ie浏览器中会出现下载框的问题,结合网上查到的资料最后解决,在此记录一下,以免以后遇到不知道怎么解决, 前端: 后台: ps:返回值有list改为j ...
- Spring MVC上传文件后重命名读取不显示,报错已解决(The origin server did not find a current representation for the targe)
上传文件后,重命名保存在本地,再读取时报错:The origin server did not find a current representation for the target resourc ...
- 文件服务器异常 选择签名,OSS上传文件后,服务器签名验证失败
关于 OSS上传文件后,服务器签名验证失败的搜索结果 回答 指定该Header后,在响应头中也会返回该Header,OSS会对上传的Object进行加密编码存储,当这个Object被下载时,响应头中会 ...
- thinkPHP 阿里云OSS 上传文件、直接下载
阿里云OSS 上传文件.直接下载 1. 安装OSS SDK composer require aliyuncs/oss-sdk-php 2. thinkPHP接口 public function up ...
- vue+elementui 同时有上传文件和批量上传文件功能,上传文件或批量上传文件后必须刷新才能再次上传文件
报错描述: 使用element-ui的上传文件组件写一个批量上传和上传文件,但是发现每次上传文件后或者批量上传文件后,不能再次上传文件或者批量上传文件.只有进入页面第一次点击上传文件或者批量上传文件才 ...
- 上传文件正常,下载文件查看失败,下载文件大小为0kb
上传文件正常,下载文件查看失败,下载文件大小为0kb 首先查看前台传进来的文件名与目录下的文件名是否一致,其次查看下载文件路径是否正确. 我的多出来个日期文件夹 is = new FileInputS ...
- ajaxfileupload上传文件问题
一.ajaxfileupload在新版的jQuery中会报jQuery.handleError is not a function 解决办法: 在Ajaxfileupload.js中追加方法: han ...
- jQuery插件之ajaxFileUpload上传文件或图片
我用的是这个:https://github.com/carlcarl/AjaxFileUpload 下载地址在这里:http://files.cnblogs.com/files/kissdodog/a ...
最新文章
- 一个简单视频网站开发小记
- Go 语言范围(Range)
- Hexo瞎折腾系列(5) - 使用hexo-neat插件压缩页面静态资源
- java additem 错,Java错误:IllegalArgumentException:向容器添加窗口
- Wordpress:将图片、post等的URL转换为相对路径
- [信息收集] HCOMP 2010概况及收录论文
- 工作239:内容过长省略号失败 直接改的样式表
- Kubernetes 持久化存储 Cephfs
- Objective-C中变量采用@property的各个属性值的含义
- 俱乐部通知[即日起启用微软Live Meeting]
- 有序表的最小和(element)
- EasyCHM - 电子书制作软件
- linux安装vbox 教程,Linux安装VirtualBox虚拟机
- 计算机专业兴趣小组 名字,计算机人兴趣小组口号
- 胖大海和罗汉果可以同泡吗
- jar完整性测试的Java代码
- 三跨考研浙江大学计算机,“三跨”考研的焦虑 你能承受多少
- 摸鱼三天,我写了一个通用的组建树TreeUtil工具
- vim的文件比较功能
- 简述计算机构位移的目的,简述应变片的选用原则