兼容性想還不錯:FF,CH,IE,獵豹,都是可以實現的。如果看到回顯。當然就是成功了。
經歷了好幾天的不停的鑽牛角尖,終於將這個二貨弄出來了。真是煞費苦心啊。但是做出來的瞬間還是蠻開心的。
第一步:我們需要加載幾個JS庫。
jquery庫。
jquery.form.js庫。
下載這兩個庫,並引用到頁面中。
以下為頁面中 JS 代碼:
復制代碼 代碼如下:
function upload() {
var options = {
type: "POST", //當然這個是傳送方式
url: '../Include/Files.ashx', //一般處理程序的路徑
success: function (msg) { //返回的參數
$("#server_img").attr("src", msg); //回顯圖片。
}
};
// 將options傳給ajaxForm
$('#aspnetForm').ajaxSubmit(options);
}
第二步:一般處理程序內的代碼
復制代碼 代碼如下:
public void ProcessRequest(HttpContext context)
{
HttpFileCollection files = context.Request.Files; // From中獲取文件對象
if (files.Count > 0)
{
string path = ""; //路徑字符串
Random rnd = new Random();
for (int i = 0; i < files.Count; i++)
{
HttpPostedFile file = files[i]; //得到文件對象
if (file.ContentLength > 0)
{
string fileName = file.FileName;
string extension = Path.GetExtension(fileName);
int num = rnd.Next(5000, 10000); //文件名稱
path = "../../UserFiles/temp/" + num.ToString() + extension;
file.SaveAs(System.Web.HttpContext.Current.Server.MapPath(path)); //保存文件。
}
}
context.Response.Write(path); //返回文件存儲後的路徑,用於回顯。
}
}
第三步:html或者aspx中的代碼。
以下兩句代碼隨便插入html或者aspx中的任意位置。想來都是可以實現的。
復制代碼 代碼如下:
<img id="server_img" width="360px" style="border: 1px solid #ccc; padding: 2px;" title="" alt="" /> //用於回顯圖片
<asp:FileUpload ID="Up_load" runat="server" onchange="upload()" ontextchange="upload()"/> //上傳圖片,自動的,兩個事件是為了保證所有浏覽器都兼容。