前台JS调用ashx文件处理上传文件受文件大小限制的问题

qq_37057775 2017-04-17 03:41:23
在一个产品页面中使用导入JS文件的前台上传控件,文件大小超过2M时就弹出“上传失败,错误信息:SyntaxError:Unexpected number”的错误提示框。找遍web.config也没发现在哪里可以修改。

JS代码如下:

$(function() {
$("#FileUpload").bind("change", function() {
//开始提交
$("#form1").ajaxSubmit({
beforeSubmit: function(formData, jqForm, options){
$(".files").hide();
$(".uploading").show();
},
success: function(data, textStatus) {
if (data.msg == 1) {
$("#txtImgUrl").val(data.msbox);
} else {
alert(data.msbox);
}
$(".files").show();
$(".uploading").hide();
},
error: function(data, status, e) {
alert("上传失败,错误信息:" + e);
$(".files").show();
$(".uploading").hide();
},
url: "/Data/Ajax/Upload.ashx",
type: "post",
dataType: "json",
timeout: 600000
});
});
});


Upload.ashx代码:

public class Upload : IHttpHandler, IRequiresSessionState
{

public void ProcessRequest(HttpContext context)
{
HttpPostedFile _upfile = context.Request.Files["FileUpload"];
string _delfile = context.Request.Params["txtImgUrl"];
if (_upfile == null)
{
context.Response.Write("{\"msg\": 0, \"msbox\": \"请选择要上传文件!\"}");
return;
}
UpLoad upFiles = new UpLoad();
string msg = upFiles.fileSaveAs(_upfile, 0);

//返回成功信息
context.Response.Write(msg);
}

public bool IsReusable
{
get
{
return false;
}
}
}


可以怎么修改代码?
如果是因为POST提交上传的问题,可否再推荐一下其他上传插件程序?
...全文
281 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
guanyelong 2017-04-18
  • 打赏
  • 举报
回复
我记得在web.config中需要设置,在IIS同样也得设置,上传或下载的才能不限制。
qq_37057775 2017-04-17
  • 打赏
  • 举报
回复
引用 1 楼 diaodiaop 的回复:

<httpRuntime executionTimeout="600" maxRequestLength="2097151" requestValidationMode="2.0" />
webconfig试试这个呢?
呵呵,当重启电脑打开浏览器之前已经找到了解决方法,这个设置也是需要的。
by_封爱 2017-04-17
  • 打赏
  • 举报
回复

<httpRuntime executionTimeout="600" maxRequestLength="2097151" requestValidationMode="2.0" />
webconfig试试这个呢?
ajaxfileupload.js可以兼容IE8以下版本实现无刷新的Form提交,上传文件。 这个版本修改了提交后台失败的几个bug 使用是需注意以下几点: 1.调用createUploadForm,此方法中增加了change参数,此参数用户给新生成的input-file元素绑定change事件,如果不需要可以不加此参数。 2.要上传的input-file元素,建议放id和name属性,而且这两个属性值要保持一致 3.后台代码中,response里的contenttype要设置为"text/html",前台的success回调中对返回值作处理 例子如下: js: $.ajaxFileUpload({ url: url, type: 'post', data: data, secureuri: false, fileElementId: fileId, // input-file的id、name属性名 dataType: 'JSON', beforeSend: function (XMLHttpRequest) { //show loading... }, success: function (data, status) { data = jQuery.parseJSON(data); success(data); }, error: function (data, status, e) { error(e); }, complete: function (XMLHttpRequest, textStatus) { //hide loading... }, change: change //需要绑定到动态生成的input-file元素上的change事件处理方法;没有的话,这个参数可以不写 }); 如果加了change,change方法中需要处理一下,因为发现会被调2次 function Upload(event) { var fileid = $(event.target).attr('id'); if(isNullOrEmpty(fileid) || /^jUploadFile\d+$/.test(fileid))return; //注意:此处过滤无效调用 //... } 后台代码(ashx): public void ProcessRequest(HttpContext context) { try { context.Response.ContentType = "text/html"; var request = context.Request; var param1 = request.Params["param1"]; //取参数 //取上传文件 if (request.Files == null || request.Files.Count <= 0) throw new ApplicationException("no file to be uploaded!"); var file = request.Files[0]; var filename = System.IO.Path.GetFileName(file.FileName); var serverpath = Path.Combine(context.Server.MapPath(ROOT), filename); file.SaveAs(serverpath); //自定义返回Json字符串 var json = '{' + string.Format(json, id, finfo.Name, extension, path) + '}'; response.Write(json); return; }

62,025

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧