html代碼: <head> //所需要的兩個JS <script src="jquery-1.4.2.min.js" type="text/javascript"></script> <script src="ajaxfileupload.js" type="text/javascript"></script> </head> <img alt="" src="" id="img" style="display: none" /> <input id="fup" name="fup" type="file" /> <input id="btnUp" type="button" value="上傳" onclick="ajaxFileUploads();"/>JS代碼: function ajaxFileUploads() { $.ajaxFileUpload( { url:'Ajax_fileupload.aspx, secureuri:false, fileElementId:'fup', dataType: 'json', success: function (data, status) { if(data.err=="") { document.getElementById("img").style.display="block"; document.getElementById("img").src=data.msg; } else { $('#sperr').text(data.err); } }, error: function (data, status, e) { $('#sperr').text("上傳失敗!"); } }); }
Ajax_fileupload.aspx頁面: protected void Page_Load(object sender, EventArgs e) { HttpFileCollection files = System.Web.HttpContext.Current.Request.Files; HttpPostedFile file = files["fup"]; if (file.ContentLength <= Convert.ToInt32(SizeFunction() * 1024 * 1024)) //SizeFunction()獲得檔案限制大小 可以自己寫在設定檔裡,限制上傳的大小 { if (IsValidFileType(file.FileName)) //驗證檔案類型 { string picPaht = Server.MapPath(FileFunciton()); //FileFunction() 檔案儲存的路徑 這裡的路徑,名字 隨自己要求設定,我這裡最簡單的日期了. Random rd = new Random(); string name = DateTime.Now.ToString("yyyyMMddhhmmssfff") + rd.Next(1000) + GetExtension(file.FileName); string strNewPath = GetSaveFilePath(picPaht) + name; file.SaveAs(strNewPath); Response.Write("{msg:'" + dal.ImgUrl() + name + "',err:''}"); } else { Response.Write("{msg:'',err:'類型錯誤!'}"); } } else { Response.Write("{msg:'',err:'大小錯誤!'}"); } }
/// <summary> /// 驗證檔案類型 /// </summary> /// <param name="FileName"></param> /// <returns></returns> private bool IsValidFileType(string FileName) { string[] _AcceptedFileTypes = TypeFunction().Split('|'); //TypeFunction() 獲得檔案限制類型 這裡我是以"|"分隔, 獲得數組, 迴圈驗證的 string ext = FileName.Substring(FileName.LastIndexOf(".") + 1, FileName.Length - FileName.LastIndexOf(".") - 1); for (int i = 0; i < _AcceptedFileTypes.Length; i++) { if (ext == _AcceptedFileTypes) { return true; } } return false; } /// <summary> /// 獲得副檔名 /// </summary> /// <param name="fileName"></param> /// <returns></returns> private string GetExtension(string fileName) { try { int startPos = fileName.LastIndexOf("."); string ext = fileName.Substring(startPos, fileName.Length - startPos); return ext; } catch { return string.Empty; } } /// <summary> /// 建立檔案要儲存的路徑 /// </summary> /// <param name="picPath">檔案路徑</param> /// <returns></returns> private string GetSaveFilePath(string picPath) { if (!Directory.Exists(picPath)) { Directory.CreateDirectory(picPath); } return picPath; } |