Jquery ajaxsubmit上傳圖片實(shí)現(xiàn)代碼
更新時(shí)間:2010年11月04日 22:55:54 作者:
這是數(shù)月前的事情了,場(chǎng)景是這樣的: 在進(jìn)行圖片上傳的時(shí),我發(fā)現(xiàn)開發(fā)人員使用的上傳圖片方式是Iframe + 傳統(tǒng)的 http post 來(lái)處理的。
而且未建立統(tǒng)一上傳函數(shù)。于是將代碼改造了。心想來(lái)個(gè)ajax異步上傳圖片吧,這技術(shù)應(yīng)該很老套了。于是直接打開強(qiáng)大的cnblogs輕松的找到了 這篇文章 直接依葫蘆畫瓢,將該作者的勞動(dòng)成果直接“拿來(lái)主義了”。很快就把代碼全改造了??墒钱?dāng)我把程序發(fā)布到服務(wù)器上的時(shí)問(wèn)題來(lái)了。上傳文件失效了!汗~ 都是偷懶造成的惡果。繼續(xù)打開先前參考的那篇文章。原來(lái)作者解釋了只能在本地使用而不能發(fā)布到服務(wù)器上。心想我難道還得用 iframe + http post 這個(gè) 郁悶的方式么??
于是不甘心的我打開了更加強(qiáng)大的google,開始全球搜索尋求解決方案,終于功夫不負(fù)有心人。找到了 "jquery.form.js" 。
異步上傳圖片的步驟如下:
1.引用 jquery js 框架(這東西的好處無(wú)需多論)后再引用 “jquery.form.js”。
2.建立一般處理程序 ashx。
核心代碼如下:
html:
<asp:Content ID="Content3" ContentPlaceHolderID="Head" runat="server">
<script src="<%=Url.Content("~/Scripts/jquery-1.4.1.js") %>" type="text/javascript"></script>
<script src="<%=Url.Content("~/Scripts/jquery.form.js") %>" type="text/javascript"></script>
<script type="text/javascript">
$(function () {
//上傳圖片
$("#btnUpload").click(function () {
if ($("#flUpload").val() == "") {
alert("請(qǐng)選擇一個(gè)圖片文件,再點(diǎn)擊上傳。");
return;
}
$('#UpLoadForm').ajaxSubmit({
success: function (html, status) {
var result = html.replace("<pre>", "");
result = result.replace("</pre>", "");
$("#image").attr('src', result);
alert(result);
}
});
});
});
ashx 如下:
namespace TestMvc.Utility
{
/// <summary>
/// Summary description for PicUploadHander
/// </summary>
public class PicUploadHander : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
//驗(yàn)證上傳的權(quán)限TODO
string _fileNamePath = "";
try
{
_fileNamePath = context.Request.Files[0].FileName;
//開始上傳
string _savedFileResult = UpLoadImage(_fileNamePath, context);
context.Response.Write(_savedFileResult);
}
catch
{
context.Response.Write("上傳提交出錯(cuò)");
}
}
注:整個(gè)上傳使用ajax 異步數(shù)據(jù),同時(shí)jquery回調(diào)出上傳成功后圖片在服務(wù)器上的相對(duì)路徑??偟膩?lái)說(shuō)此方式相對(duì)傳統(tǒng)的上傳圖片方式要強(qiáng)一些。
本例代碼在此下載,F(xiàn)ireFox 下測(cè)試通過(guò)。http://xiazai.jb51.net/201011/yuanma/AjaxUploadPic.rar
于是不甘心的我打開了更加強(qiáng)大的google,開始全球搜索尋求解決方案,終于功夫不負(fù)有心人。找到了 "jquery.form.js" 。
異步上傳圖片的步驟如下:
1.引用 jquery js 框架(這東西的好處無(wú)需多論)后再引用 “jquery.form.js”。
2.建立一般處理程序 ashx。
核心代碼如下:
html:
復(fù)制代碼 代碼如下:
<asp:Content ID="Content3" ContentPlaceHolderID="Head" runat="server">
<script src="<%=Url.Content("~/Scripts/jquery-1.4.1.js") %>" type="text/javascript"></script>
<script src="<%=Url.Content("~/Scripts/jquery.form.js") %>" type="text/javascript"></script>
<script type="text/javascript">
$(function () {
//上傳圖片
$("#btnUpload").click(function () {
if ($("#flUpload").val() == "") {
alert("請(qǐng)選擇一個(gè)圖片文件,再點(diǎn)擊上傳。");
return;
}
$('#UpLoadForm').ajaxSubmit({
success: function (html, status) {
var result = html.replace("<pre>", "");
result = result.replace("</pre>", "");
$("#image").attr('src', result);
alert(result);
}
});
});
});
ashx 如下:
復(fù)制代碼 代碼如下:
namespace TestMvc.Utility
{
/// <summary>
/// Summary description for PicUploadHander
/// </summary>
public class PicUploadHander : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
//驗(yàn)證上傳的權(quán)限TODO
string _fileNamePath = "";
try
{
_fileNamePath = context.Request.Files[0].FileName;
//開始上傳
string _savedFileResult = UpLoadImage(_fileNamePath, context);
context.Response.Write(_savedFileResult);
}
catch
{
context.Response.Write("上傳提交出錯(cuò)");
}
}
注:整個(gè)上傳使用ajax 異步數(shù)據(jù),同時(shí)jquery回調(diào)出上傳成功后圖片在服務(wù)器上的相對(duì)路徑??偟膩?lái)說(shuō)此方式相對(duì)傳統(tǒng)的上傳圖片方式要強(qiáng)一些。
本例代碼在此下載,F(xiàn)ireFox 下測(cè)試通過(guò)。http://xiazai.jb51.net/201011/yuanma/AjaxUploadPic.rar
您可能感興趣的文章:
- vue中element-ui使用axios上傳文件
- elementui+vue+axios實(shí)現(xiàn)文件上傳本地服務(wù)器
- Vue+Axios實(shí)現(xiàn)文件上傳自定義進(jìn)度條
- Axios+Spring?Boot實(shí)現(xiàn)文件上傳和下載
- JQuery上傳插件Uploadify使用詳解及錯(cuò)誤處理
- jQuery Ajax 上傳文件處理方式介紹(推薦)
- Jquery插件之多圖片異步上傳
- JQuery.uploadify 上傳文件插件的使用詳解 for ASP.NET
- jQuery Ajax文件上傳(php)
- Axios和Jquery實(shí)現(xiàn)文件上傳功能
相關(guān)文章
Jquery post傳遞數(shù)組方法實(shí)現(xiàn)思路及代碼
Jquery post 傳遞數(shù)組以做批量刪除會(huì)需要傳遞要?jiǎng)h除的數(shù)據(jù)ID數(shù)組,下面是具體的實(shí)現(xiàn)代碼,感興趣的童鞋們可以參考下2013-04-04
jQuery實(shí)現(xiàn)的指紋掃描效果實(shí)例(附演示與demo源碼下載)
這篇文章主要介紹了jQuery實(shí)現(xiàn)的指紋掃描效果,以完整實(shí)例形式分析了jQuery實(shí)現(xiàn)圖像按照指定模式顯示的相關(guān)實(shí)現(xiàn)技巧,并附帶附示例演示與demo源碼供讀者下載參考,需要的朋友可以參考下2016-01-01
jquery插件jquery倒計(jì)時(shí)插件分享
jquery倒計(jì)時(shí)插件分享,大家參考使用吧2013-12-12
jQuery插件imgPreviewQs實(shí)現(xiàn)上傳圖片預(yù)覽
這篇文章主要介紹了jQuery插件imgPreviewQs實(shí)現(xiàn)上傳圖片預(yù)覽的相關(guān)資料,需要的朋友可以參考下2016-01-01
jquery+css3實(shí)現(xiàn)熊貓tv導(dǎo)航代碼分享
本篇文章給大家詳細(xì)分享的是jquery+css3來(lái)寫出熊貓tv導(dǎo)航的效果,以及代碼分享,喜歡的朋友參考下。2018-02-02
jQuery實(shí)現(xiàn)圖片走馬燈效果的原理分析
這篇文章主要介紹了jQuery實(shí)現(xiàn)圖片走馬燈效果的原理,結(jié)合實(shí)例形式較為詳細(xì)的分析了jQuery實(shí)現(xiàn)走馬燈的相關(guān)html頁(yè)面設(shè)計(jì)、css樣式布局與jQuery相關(guān)函數(shù)的使用,需要的朋友可以參考下2016-01-01
jQuery實(shí)現(xiàn)的簡(jiǎn)單百分比進(jìn)度條效果示例
這篇文章主要介紹了jQuery實(shí)現(xiàn)的簡(jiǎn)單百分比進(jìn)度條效果,結(jié)合簡(jiǎn)單實(shí)例形式分析了jQuery針對(duì)頁(yè)面元素的運(yùn)算與動(dòng)態(tài)操作相關(guān)操作技巧,需要的朋友可以參考下2016-08-08

