共计 2954 个字符,预计需要花费 8 分钟才能阅读完成。
这篇文章主要介绍了 Ajax 怎么上传文件到服务器的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇 Ajax 怎么上传文件到服务器文章都会有所收获,下面我们一起来看看吧。
上传文件是常要处理的事情,使用 ajaxFileUpload.js 处理比较方便,这里的 ajaxFileUpload.js 文件修改过的
Html 部分
input type= file id= fu_UploadFile name= fu_UploadFile value= title= 上传附件
input type= button value= 上传 quot;upload() /
JS 部分
function upload() { var path = document.getElementById( fu_UploadFile).value; if ($.trim(path) == ) { alert( 请选择要上传的文件 return; } console.log( test var result_msg =
$.ajaxFileUpload({ url: /UpFile.ashx , // 这里是服务器处理的代码
type: post , secureuri: false, // 一般设置为 false
fileElementId: fu_UploadFile , // 上传文件的 id、name 属性名
dataType: json , // 返回值类型,一般设置为 json、application/json
data: {}, // 传递参数到服务器
success: function (data, status) { if (data.Result) { alert( 文件成功处理完成! + data.FileName);
} else { alert( 文件成功处理出错!原因: + data.ErrorMessage);
}
}, error: function (data, status, e) {
alert( 错误:上传组件错误,请检察网络!
}
});
}
服务器:
/// summary
/// UpFile 的摘要说明
/// /summary
public class UpFile : IHttpHandler
{ public void ProcessRequest(HttpContext context) {
context.Response.ContentType = text/plain
UpFileResult result = new UpFileResult(); try
{ HttpPostedFile _upfile = context.Request.Files[ fu_UploadFile if (_upfile == null)
{ throw new Exception( 请先选择文件! } else
{ string fileName = _upfile.FileName;/* 获取文件名: C:Documents and SettingsAdministrator 桌面 123.jpg*/
string suffix = fileName.Substring(fileName.LastIndexOf( .) + 1).ToLower();/* 获取后缀名并转为小写: jpg*/
int bytes = _upfile.ContentLength;// 获取文件的字节大小
//
if (!(suffix == jpg || suffix == gif || suffix == png || suffix == jpeg)) throw new Exception(只能上传 JPE,GIF,PNG 文件 if (bytes 1024 * 1024*10) throw new Exception(文件最大只能传 10M string newfileName = DateTime.Now.ToString( yyyyMMddHHmmss string fileDir = HttpContext.Current.Server.MapPath( ~/upfiles/ if (!Directory.Exists(fileDir))
{ Directory.CreateDirectory(fileDir);
}
result.FileName = fileName;
string saveDir = fileDir + newfileName + . + suffix;
result.FileURL = ~/upfiles/ + newfileName + . + suffix;
_upfile.SaveAs(result.FileURL);// 保存图片
}
} catch (System.Exception ex)
{
result.Result = false;
result.ErrorMessage = ex.Message;
}
context.Response.Write(JsonHelper.SerializeObject(result));
} public bool IsReusable
{ get
{ return false;
}
} public class UpFileResult //: AshxCommonResult
{ public bool Result { get; set; } public string ErrorMessage { get; set; } public string FileName { get; set; } public string FileURL { get; set; }
}
ajaxfileupload.js
jQuery.extend({
handleError: function (s, xhr, status, e) { // If a local callback was specified, fire it
if (s.error) {
s.error.call(s.context || s, xhr, status, e);
} // Fire the global callback
if (s.global) {
(s.context ? jQuery(s.context) : jQuery.event).trigger(ajaxError , [xhr, s, e]);
}
},
createUploadIframe: function(id, uri)
{ //create frame
var frameId = jUploadFrame + id; var iframeHtml = iframe id= + frameId + name= + frameId + >关于“Ajax 怎么上传文件到服务器”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Ajax 怎么上传文件到服务器”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注丸趣 TV 行业资讯频道。
正文完