亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > AJAX > 正文

AjaxFileUpload.js實現異步上傳文件功能

2024-09-01 08:34:00
字體:
來源:轉載
供稿:網友

做軟工作業時,需要實現無刷新異步上傳圖片到服務器,于是想利用Ajax:

得到file的val,再post過去…

等真正實現的時候才發現,根本行不通。

于是翻來翻去找到一個封裝好的js插件,可以實現異步上傳文件。

AjaxFileUpload

這個插件的原理是創建隱藏的表單和iframe,然后用JS去提交,獲得返回值。

語法

$.ajaxFileUpload([options])

參數說明 

url           上傳處理程序地址。 
fileElementId      需要上傳的文件域的ID,即的ID。 
secureuri        是否啟用安全提交,默認為false。 
dataType        服務器返回的數據類型??梢詾閤ml,script,json,html。如果不填寫,jQuery會自動判斷。 
success        提交成功后自動執行的處理函數,參數data就是服務器返回的數據。 
error          提交失敗自動執行的處理函數。 
data           自定義參數。這個東西比較有用,當有數據是與上傳的圖片相關的時候,這個東西就要用到了。 
type           當要提交自定義參數時,這個參數要設置成post

使用方法

引入jQuery與ajaxFileUpload插件(由api中心強力提供)

<script type="text/javascript" src="https://api.mayuko.cn/js/jquery.min.js"></script><script type="text/javascript" src="https://api.mayuko.cn/js/ajaxfileupload.js"></script>

擴展HTML代碼

<td height="52" class="inputContent" ><div align="center">附件1<input type="file" name="upload_file" id="ss_upload_file1"></td><td colspan="3"><input type="button" name="Submit3" value="上 傳" class="button" id="ss_file_upload"></td>

JS代碼

$("#ss_file_upload").click(function(){  $.ajaxFileUpload({ url:'doajaxfileupload.php',//請求地址 secureuri:false,//是否需要安全協議 fileElementId:'ss_upload_file1',//file的ID dataType: 'text',//返回值類型,一般為json success: function(img_data1)//成功后執行 { $(ss_file1_url).attr("value",img_data1); alert("上傳成功"); }, error:function(img_data1,status,e){  alert("上傳失敗");  } })})

PHP代碼

后臺就是進行上傳操作啦,因為是課程設計所以我將圖片上傳到了七牛云存儲中。

如何上傳到七牛中?

<?php//echo var_dump($_FILES);//echo $_FILES['upload_file']['tmp_name'];$file_infor = array("status"=>'',"url"=>'');require_once("qiniu/io.php");require_once("qiniu/rs.php");$bucket = "";//你的bucket$key1 = $_FILES["upload_file"]["name"] ;$accessKey = '';//AK$secretKey = '';//SKQiniu_SetKeys($accessKey, $secretKey);$putPolicy = new Qiniu_RS_PutPolicy($bucket);$upToken = $putPolicy->Token(null);$putExtra = new Qiniu_PutExtra();$putExtra->Crc32 = 1;list($ret, $err) = Qiniu_PutFile($upToken, $key1,$_FILES["upload_file"]["tmp_name"], $putExtra);$url='bucket域名'.$key1;if ($_FILES["upload_file"]["error"] > 0){$file_infor["status"] = 'error';}else{$file_infor["status"] = 'success';$file_infor["url"] = $url;}echo $url;?>

$_FILES是一個數組:

array (‘upload_file' =>array (‘name' => ‘733626970332872971.jpg',‘type' => ‘image/jpeg',‘tmp_name' => ‘C://Windows//Temp//phpF203.tmp',‘error' => 0,‘size' => 210744,),)

這樣前臺就可以接收到上傳圖片之后的url值并進行顯示操作了。

一般來說,AjaxFileUpload的返回類型是json格式,可是在測試的時候前臺一直無法解析json數據,所以無解之后就換成text數據了。

錯誤提示

1.Uncaught TypeError: Object function (a,b){return new e.fn.init(a,b,h)} has no method ‘handleError'

這是因為高版本的jQuery中取消了handleError方法,在ajaxfileupload.js中加入該方法就可以啦。 ;)

handleError: function( s, xhr, status, e ) {// If a local callback was specified, fire itif ( s.error ) {s.error.call( s.context || s, xhr, status, e );}// Fire the global callbackif ( s.global ) {(s.context ? jQuery(s.context) : jQuery.event).trigger( "ajaxError", [xhr, s, e] );}}

2.success: function(data)中data為空值

應該是json數據的問題,我的解決方法是設置返回數據的類型是 text,用alert(data +”:” + data.length); 觀察返回的數據是否有效。

3.一直跳轉到error方法中

當執行if(type==”json”) eval(“data = “+data);會拋出異常,導致在處理異常的時候將status = “error” 因此一直執行error方法。

將ajaxfileupload.js中uploadHttpData: function( r, type ) 方法的 eval(“data = “+data+” “)改為 eval(“data = /” “+data+” /” “);

4.SyntaxError: syntax error錯誤

檢查處理提交操作的服務器后臺處理程序是否存在語法錯誤。

5.change第二次失效

綁定change事件,實現選擇圖片后自動上傳,但是觸發一次change事件后,下次就不會再觸發change事件。

原因:由于ajaxFileUpload把原來的file元素替換成新的file元素,所以之前綁定的change事件就失效了。

解決方法:在 $.ajaxFileUpload({option})中的回調函數里 重新綁定change事件。

 

$("#upload_file").change(function(){  UploadImg();});UploadImg = function() { $(window).bind('beforeunload',function(){return '正在上傳,確定離開此頁面嗎?';}); $('#loading').attr('style','display:block;') $.ajaxFileUpload({ url:'upload_ajax.php', secureuri:false, fileElementId:'upload_file', dataType: 'text', success: function(data) {  $('#loading').attr('style','display:none;');  if(data == 0){   $("body").overhang({   type: "error",   message: "上傳失敗,CODE:00020"   });  }  else if(data == 1){   $("body").overhang({   type: "success",   message: "上傳成功!"   });   setTimeout(function(){      window.location.reload();    },1000);  }  else{   $("body").overhang({   type: "error",   message: "格式錯誤,僅支持jpg,png,gif"   });  }  $(window).unbind('beforeunload');  $("#upload_file").change(function () {    UploadImg();  }); }, error:function(data,status,e){    $("body").overhang({   type: "error",   message: "上傳失敗,CODE:00031"   }); } })   }

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
精品无人区太爽高潮在线播放| 91九色视频在线| 久久99国产综合精品女同| 欧美国产第二页| 日韩在线播放av| 色琪琪综合男人的天堂aⅴ视频| 最近中文字幕mv在线一区二区三区四区| 国产91精品青草社区| 国产98色在线| 国产亚洲美女精品久久久| 国产三级精品网站| 亚洲欧美另类在线观看| 亚洲精品98久久久久久中文字幕| 国产精品视频yy9099| 成人写真视频福利网| 日韩av色综合| 亚洲视频在线观看视频| 国产欧美亚洲精品| 成人中心免费视频| 欧美激情亚洲一区| 精品国产乱码久久久久久虫虫漫画| 亚洲精品一区二区三区不| 久久久久久亚洲精品不卡| 午夜精品一区二区三区在线播放| 久久精品国产欧美亚洲人人爽| 日韩欧美在线观看视频| 91精品国产高清自在线| 久久中文字幕一区| 一本一本久久a久久精品牛牛影视| 91av视频在线观看| 国产精品丝袜高跟| 欧美中文字幕精品| 亚洲精品少妇网址| 国产97在线观看| 一区二区三区视频免费在线观看| 日韩一区二区欧美| 亚洲国产精品成人一区二区| 国产精品久久久久久久7电影| 色综合色综合网色综合| 欧美性受xxx| 国产欧美 在线欧美| 92版电视剧仙鹤神针在线观看| 国产热re99久久6国产精品| 欧美日韩国产中文精品字幕自在自线| 欧美性猛交xxxxx免费看| 日韩极品精品视频免费观看| 欧美超级乱淫片喷水| 国产一区二区在线播放| 欧美性xxxx| 亚洲成av人片在线观看香蕉| 亚洲区一区二区| 成人国产精品免费视频| 国产精品亚洲网站| 久久免费视频观看| 亚洲欧洲日产国码av系列天堂| 国产精品久久久久久久久借妻| 欧美日韩性视频在线| 日韩av免费看| 久久久视频免费观看| 亚洲精品日韩激情在线电影| 国产精品高潮呻吟久久av黑人| 国产婷婷97碰碰久久人人蜜臀| 久久天天躁狠狠躁夜夜av| 久久男人的天堂| 91日本在线视频| 91在线视频九色| 欧美一级淫片aaaaaaa视频| 欧美黄色片在线观看| 国产亚洲一区二区精品| 久久久久久久久久久91| 国产999在线观看| 中文字幕综合一区| 亚洲欧洲国产一区| 久久精品一本久久99精品| 91亚洲va在线va天堂va国| 精品夜色国产国偷在线| 久久天天躁日日躁| 日韩国产欧美区| 日韩国产激情在线| 欧美午夜精品久久久久久人妖| 久久99青青精品免费观看| 91伊人影院在线播放| 中文字幕自拍vr一区二区三区| 亚洲欧美一区二区三区久久| 这里只有视频精品| 国产99久久精品一区二区| 国产精品日韩在线播放| 成人激情视频在线播放| 亚洲电影免费观看高清完整版| 中文字幕免费精品一区高清| 亚洲欧美另类在线观看| 黑人巨大精品欧美一区二区免费| 全亚洲最色的网站在线观看| 69av成年福利视频| 久久久久久久久久久久av| 欧美视频免费在线观看| 色噜噜狠狠狠综合曰曰曰| 欧美性开放视频| 91久久精品在线| 亚洲网站视频福利| 国产综合香蕉五月婷在线| 亚洲一级免费视频| 91在线观看免费网站| 国产精品爱啪在线线免费观看| 中文字幕日韩免费视频| 麻豆一区二区在线观看| 国产欧美日韩专区发布| 欧美三级免费观看| 中文字幕久久久| 中文在线资源观看视频网站免费不卡| 中文字幕日本欧美| 欧美极度另类性三渗透| 欧美日韩中文字幕综合视频| 91中文精品字幕在线视频| 欧美精品电影免费在线观看| 91精品国产91久久久久| 亚洲欧美国产日韩天堂区| 国产精品高潮呻吟久久av野狼| 伊人久久久久久久久久久久久| 亚洲第一页自拍| 北条麻妃一区二区在线观看| 裸体女人亚洲精品一区| 色狠狠久久aa北条麻妃| 亚洲男人av在线| 欧美电影在线免费观看网站| 久久国产精品久久久久久| 日韩欧美亚洲国产一区| 欧美精品制服第一页| 亚洲精品第一国产综合精品| 久久视频免费观看| 亚洲成人动漫在线播放| 亚洲影院污污.| 国产精品久久久久不卡| 亚洲xxxxx性| 国产精品久久二区| 91精品国产综合久久香蕉最新版| 日韩成人在线播放| www.国产精品一二区| 国产一区二区精品丝袜| 欧美激情免费观看| 欧美日韩免费在线观看| 国产精品爱啪在线线免费观看| 亚洲自拍另类欧美丝袜| 久久久久久尹人网香蕉| 日韩av电影免费观看高清| 国产精品精品视频| 美女少妇精品视频| 久久久国产一区二区三区| 中文字幕综合在线| 成人国内精品久久久久一区| 日韩在线观看免费高清| 成人久久一区二区| 韩剧1988免费观看全集| 欧美黑人一级爽快片淫片高清| 日韩精品在线播放| 国产精品无码专区在线观看| 欧美性猛交xxxx免费看| 最近2019中文字幕大全第二页| 日韩精品免费在线观看| 久久久精品中文字幕| 97成人精品视频在线观看| 国产v综合ⅴ日韩v欧美大片| 亚洲最大成人网色| 亚洲国产精品一区二区三区|