1.不用任何插件,利用iframe,將form的taget設爲iframe的name,注意設爲iframe的id是沒用的,跟網上不少說的不太一致javascript
iframe_upload.htm
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> </head> <body> <form id="form1" method="post" action="Upload.aspx" enctype="multipart/form-data" target="uploadframe"> <input type="file" id="upload" name="upload" /> <input type="submit" value="Upload" /> </form> <iframe id="uploadframe" name="uploadframe" style="visibility:hidden"></iframe> </body> </html>
Upload.aspx
<%@ Page Language="C#" %> <% Response.ClearContent(); try { if (Request.Files.Count == 0) Response.Write("Error"); else { HttpPostedFile file= Request.Files[0]; string ext = System.IO.Path.GetExtension(file.FileName); string folder = HttpContext.Current.Server.MapPath("~\\Upload\\"); string path = folder + Guid.NewGuid().ToString() + ext; file.SaveAs(path); Response.Write("Success"); } } catch { Response.Write("Error"); } %>
2.利用ajaxupload.jscss
Default.aspx
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>Ajax Upload Demo</title> <script type="text/javascript" src="Scirpt/jquery-1.10.2.min.js"></script> <script type="text/javascript" src="Scirpt/ajaxupload.js"></script> <script type="text/javascript"> $(function () { // 建立一個上傳參數 var uploadOption = { // 提交目標 action: "Upload.aspx", // 自動提交 autoSubmit: false, // 選擇文件以後… onChange: function (file, extension) { if (new RegExp(/(jpg)|(jpeg)|(bmp)|(gif)|(png)/i).test(extension)) { $("#filepath").val(file); } else { alert("只限上傳圖片文件,請從新選擇!"); } }, // 開始上傳文件 onSubmit: function (file, extension) { $("#state").val("正在上傳" + file + ".."); }, // 上傳完成以後 onComplete: function (file, response) { if (response == "Success") $("#state").val("上傳完成!"); else $("#state").val(response); } } // 初始化圖片上傳框 var oAjaxUpload = new AjaxUpload('#selector', uploadOption); // 給上傳按鈕增長上傳動做 $("#up").click(function () { oAjaxUpload.submit(); }); }); </script> </head> <body> <div> <label>一個普通的按鈕:</label><input type="button" value="選取圖片" id="selector" /> <br /> <label>選擇的圖片路徑:</label><input type="text" readonly="readonly" value="" id="filepath" /> <br /> <label>不是submit按鈕:</label><input type="button" value="上傳" id="up" /> <br /> <label>上傳狀態和結果:</label><input type="text" readonly="readonly" value="" id="state" /> </div> </body> </html