ajaxfileupload.js下载

眼镜333 今日头条 工程师  2020-04-20 12:48:03
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;
}
catch (Exception err)
{
throw err;
}
}

相关下载链接://download.csdn.net/download/weixin_37848588/12342995?utm_source=bbsseo
...全文
1 点赞 收藏 回复
写回复
回复
切换为时间正序
请发表友善的回复…
发表回复
相关推荐
发帖
下载资源悬赏专区
创建于2007-03-31

8924

社区成员

CSDN 下载资源悬赏专区
申请成为版主
帖子事件
创建了帖子
2020-04-20 12:48
社区公告
暂无公告