簡(jiǎn)單三步實(shí)現(xiàn)圖片無(wú)刷新上傳:注意是上傳,至于上傳時(shí)的驗(yàn)證,比如圖片的尺寸,大小,格式。自行解決。如果我搞定了,也會(huì)貼上來(lái)的。
兼容性想還不錯(cuò):FF,CH,IE,獵豹,都是可以實(shí)現(xiàn)的。如果看到回顯。當(dāng)然就是成功了。
經(jīng)歷了好幾天的不停的鉆牛角尖,終于將這個(gè)二貨弄出來(lái)了。真是煞費(fèi)苦心啊。但是做出來(lái)的瞬間還是蠻開(kāi)心的。
第一步:我們需要加載幾個(gè)JS庫(kù)。
jquery庫(kù)。
jquery.form.js庫(kù)。
下載這兩個(gè)庫(kù),并引用到頁(yè)面中。
以下為頁(yè)面中 JS 代碼:
function upload() {
var options = {
type: "POST", //當(dāng)然這個(gè)是傳送方式
url: '../Include/Files.ashx', //一般處理程序的路徑
success: function (msg) { //返回的參數(shù)
$("#server_img").attr("src", msg); //回顯圖片。
}
};
// 將options傳給ajaxForm
$('#aspnetForm').ajaxSubmit(options);
}
第二步:一般處理程序內(nèi)的代碼
public void ProcessRequest(HttpContext context)
{
HttpFileCollection files = context.Request.Files; // From中獲取文件對(duì)象
if (files.Count > 0)
{
string path = ""; //路徑字符串
Random rnd = new Random();
for (int i = 0; i < files.Count; i++)
{
HttpPostedFile file = files[i]; //得到文件對(duì)象
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); //返回文件存儲(chǔ)后的路徑,用于回顯。
}
}
第三步:html或者aspx中的代碼。
以下兩句代碼隨便插入html或者aspx中的任意位置。想來(lái)都是可以實(shí)現(xiàn)的。
<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()"/> //上傳圖片,自動(dòng)的,兩個(gè)事件是為了保證所有瀏覽器都兼容。
聯(lián)系客服