ajaxFileUpload上传文件后提示下载的问题
在某些版本浏览器下ajaxFileUpload上传文件会提示下载,
1:为什么?
可以观察到,即便返回 JsonResult 在返回的头中也没有任何消息体,直接理解为文本了。
2:解决方案
前端:
function uploadImg(fimgi) {
if ($("#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);
$("#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"
};
}
ajaxFileUpload上传文件后提示下载的问题的更多相关文章
- IE下AjaxForm上传文件直接提示下载的兼容性Bug
使用AjaxForm上传文件时候,在IE下直接提示下载保存: 我的示例代码: return this.Json( new { prop1 = 5, prop2 = 10 }); 这种问题只出现在IE下 ...
- 在使用 AjaxFileUpload 上传文件时,在项目发布到 iis 后,图片不能预览
在使用 AjaxFileUpload 上传文件时,图片已经上传成功了,在站点没有发布时,可以预览,可是在项目发布到 iis 后,图片就不能预览,在网上找了很多的方案也没解决,最后的解决方案如下: 1 ...
- ASP.NET页面上传文件时提示文件大小超过请求解决方法
在webconfig中节点 <system.web> </system.web> 下加入以下代码:maxRequestLength为限制上传文件大小,executionTime ...
- ifrem上传文件后显示
ifrem上传文件后显示 1.上传文件按钮 <a class="btn btn-primary pull-right" id="data-upload&quo ...
- IE中使用ajaxSubmit上传文件弹出下载提示框
使用jQuery的ajaxSubmit 上传文件时,在IE中会弹出下载提示框: 解决方法:让action返回String类型,而不是ActionView,
- springmvc+ajaxFileUpload上传文件(前后台彻底分离的情况下)
首先是导入jar包: web.xml: <servlet> <servlet-name>mvc-dispatcher</servlet-name> <serv ...
- ajaxFileUpload上传文件没反应
调用jquery的ajaxFileUpload异步上传文件,IE浏览器不进入success问题 原因:json转换异常,ie浏览器处理后的返回json没有<pre>标签,直接是完整的jso ...
- ajaxFileUpload上传文件简单示例
写在前面: 上传文件的方式有很多,最近在做项目的时候,一开始也试用了利用jquery的插件ajaxFileUpload来上传大文件,下面,用一个上传文件的简单例子,记录下,学习的过程~~~ 还是老样子 ...
- webuploader 上传文件 生成链接下载文件
最近 在asp.net MVC 项目 需要实现一个Excel和 图片上传功能.之前有使用过SWFUpload 做过上传图片功能,在本次实现过程中,有人推荐WebUploader 上传组件,因此采用we ...
随机推荐
- SQL 基础:Select语句,各种join,union用法
一.基本的SELECT语句 1. “*”的注意事项:在SELECT语句中,用*来选取所有的列,这是一个应该抵制的习惯. 虽然节省了输入列名的时间,但是也意味着获得的数据比真正需要的数据多的多.相应的, ...
- Python—元组tuple
列表的知识其实就类似于c语言中的数组,可插入.修改.list=[a,b,c,d] 而元组tuple,一旦初始化即不可修改.好处与绝对安全. 定义一个空的元组:t=() 定义只有一个元素的元组:t=(1 ...
- The content of element type "configuration" must match "(properties?,settings?,typeAliases?,typeHandlers?,objectFactory?,objectWrapperFactory?,reflectorFactory?,plugins?,environments?,databaseIdProv
在mybatis配置文件config.xml中报错: The content of element type "configuration" must match "(p ...
- HttpModule的一些初步认识
新建一个类 ValidaterHttpModuleEvents继承管道接口 IHttpModule,代码如下 public class ValidaterHttpModuleEvents:IHttpM ...
- Python笔记——break的注意事项
在python中有个控制流的语句:break 它是用来终止循环语句的,不管此时循环体进行到哪,只要碰到break都停止执行循环语句. 1.举例脚本: #!/usr/bin/env python for ...
- Android 操作SQLite基本用法
一.SQLite的介绍 1.SQLite简介 SQLite是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入 式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的 ...
- css 单位-px、em、rem、百分比
px像素(Pixel,像素px是相对于显示器屏幕分辨率而言的. em是相对长度单位.相对于当前对象内文本的字体尺寸.如当前对行内文本的字体尺寸未被人为设置,则相对于父级元素字体尺寸(若父级元素未指定f ...
- 手动开启/关闭Oracle数据库
@echo off@echo 启动/关闭数据库set /p flag=您是否要启动数据库?(是按Y启动,否按N关闭) goto answer%flag% goto end :answery echo ...
- oracle系统表查询
oracle查询用户下的所有表 select * from all_tab_comments -- 查询所有用户的表,视图等select * from user_tab_comments -- 查询本 ...
- BIEE 11g 安装
1.安装oracle 创建字符集为AL32UTF8的实力MERIT sys密码merit 创建biee用户 create tablespace biee datafile 'D:\ORADATA\M ...