免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
Ajax Upload多文件上傳插件翻譯及中文演示 ? 張?chǎng)涡?/div>

by zhangxinxu from http://www.zhangxinxu.com

本文地址:http://www.zhangxinxu.com/wordpress/?p=342



一、以下為項(xiàng)目主頁(yè)正文翻譯(包括代碼注釋的翻譯):


1、Ajax Upload上傳插件


瀏覽器迫使我們使用文件輸入控件(<input type=”file” />)做上傳,然而此控件的樣式是不能修改的。此外,基于表單上傳在流行的Ajax應(yīng)用程序面前顯得過(guò)時(shí)了。我們可以使用flash解決這個(gè)問(wèn)題,但實(shí)際上JavaScript也能做的很出色。


Ajax Upload文件上傳插件允許你上傳多個(gè)插件而無(wú)需刷新頁(yè)面,可以使用任何的元素來(lái)顯示文件選擇窗口。它可以在所有主流的瀏覽器下工作,從2.0版本開始,不需要任何庫(kù)運(yùn)行。Ajax Upload文件上傳插件不會(huì)污染任何命名空間,所以它與jQuery,Prototypejs,mootools其他JavaScript庫(kù)兼容。


Demo實(shí)例

下面是一個(gè)在jQuery下使用Ajax Upload插件的實(shí)例。


下載

版本3.6 發(fā)布于2009-03-10


問(wèn)題,貢獻(xiàn)和最新版本

該項(xiàng)目最近已經(jīng)移到了GitHub,歡迎您去折騰它。也更愿意您使用“問(wèn)題跟蹤(issue tracker)”留下意見,錯(cuò)誤報(bào)告和要求。您必須先要在GitHub上注冊(cè)才行。


2、如何去使用它?


創(chuàng)建上載

首先,您需要?jiǎng)?chuàng)建一個(gè)按鈕。(可以使用任意的元素)


<div id=”upload_button”>上傳</div>

接下來(lái),您應(yīng)該創(chuàng)建Ajax上傳實(shí)例。您可以使用以下代碼創(chuàng)建最簡(jiǎn)單的形式:


// 您必須在 DOM 準(zhǔn)備好之后在創(chuàng)建它

//在jquery下使用 $(document).ready

// prototype下為document.observe(“dom:loaded”


new AjaxUpload(‘upload_button_id’, {action: ‘upload.php’});

配置Ajax上傳


new AjaxUpload(‘#upload_button_id’, {

// 服務(wù)器端上傳腳本

// 注意: 文件不允許上傳到另外一個(gè)域上


action: ‘upload.php’,

// 文件上傳的名字

name: ‘userfile’,

// 發(fā)送的附加數(shù)據(jù)

data: {

example_key1 : ‘example_value’,

example_key2 : ‘example_value2′

},


// 篩選后提交文件

autoSubmit: true,

// 您希望從服務(wù)器返回的數(shù)據(jù)類型

// HTML (text) 和 XML 自動(dòng)檢測(cè)

// 當(dāng)您使用JSON作為響應(yīng)時(shí)很實(shí)用,在這種情況下就設(shè)置為 “json”

// 也要設(shè)置服務(wù)器端的響應(yīng)類型為text/html, 否則在IE6下是不工作的


responseType: false,

// 文件選擇后使用

// 當(dāng)autoSubmit為disabled時(shí)很管用

// 您可以通過(guò)返回false取消上傳

// @參數(shù)file為上傳文件的文件名

// @參數(shù)extension為那個(gè)文件(后綴名)


onChange: function(file, extension){},

// 文件上傳時(shí)調(diào)用

// 您可以通過(guò)設(shè)置返回false 取消上傳

// @參數(shù)file為上傳文件的文件名

// @參數(shù)extension為那個(gè)文件(后綴名)


onSubmit: function(file, extension) {},

// 當(dāng)文件上傳完成的時(shí)候調(diào)用

// 警告!不要使用”false”字符串作為服務(wù)器的響應(yīng)

// @參數(shù)file 指上傳的文件名

// @參數(shù) response 指服務(wù)器的響應(yīng)


onComplete: function(file, response) {}

});

注意:不要使用數(shù)據(jù)參數(shù)附加動(dòng)態(tài)數(shù)據(jù),就像“data: (txt:textfield.value)”,因?yàn)樗鼘⒃贏JAX Upload實(shí)例創(chuàng)建的時(shí)候分配數(shù)據(jù)且以后不會(huì)改變。如果你想文本框的傳遞的其他數(shù)據(jù),使用在onSubmit回調(diào)函數(shù)中的SetData方法。


實(shí)例方法

*submit – 提交文件到服務(wù)器(當(dāng)autoSubmit被禁用時(shí)有用)

*disable – 禁用上傳按鈕

*enable – 允許上傳按鈕

*destroy – 清理AjaxUpload對(duì)象

* setData(data) – 覆蓋數(shù)據(jù)參數(shù)


//您可以使用這些方法來(lái)配置AJAX的上傳

var upload = new AjaxUpload(‘#div_id’,{action: ‘upload.php’});

//例如當(dāng)用戶選擇了一些東西,設(shè)置一些參數(shù)

upload.setData({‘example_key’: ‘value’});

//或者您可以在事件函數(shù)中直接使用這些方法

new AjaxUpload(‘div_id’, {

action: ‘upload.php’,

onSubmit: function() {


//僅允許一個(gè)上傳

this.disable();

}

});

});

3、如何訪問(wèn)上載的文件?

對(duì)于服務(wù)器端的代碼,文件似乎是以簡(jiǎn)單的形式被上傳,所以您可以使用任何您想用的語(yǔ)言。

您訪問(wèn)上傳文件可以使用:

* PHP: $_FILES['userfile']

* Rails: params[:userfile]

請(qǐng)注意,’userfile’是”name”選項(xiàng)的默認(rèn)值


您可以訪問(wèn)其他一些參數(shù)通過(guò):

* PHP: $_POST['yourkey']

* Rails: params[:yourkey]


服務(wù)器端腳本

如果您使用的是PHP的,這里是一個(gè)簡(jiǎn)單的例子,我從PHP手冊(cè)直接獲得的。


$uploaddir = ‘/var/www/uploads/’;

$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);


if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {

echo “success”;

} else {


// 警告!不要使用字符串”FALSE”作為一個(gè)響應(yīng)!

// 否則onSubmit 事件不會(huì)調(diào)用


echo “error”;

}


ColdFusion的文件上傳。 (默認(rèn)準(zhǔn)系統(tǒng)解決方案)



<cffunction name=”uploadFile” access=”remote” output=”false”>

  <cfargument name=”userFile”>

  <cffile action=”upload” fileField=”userFile” destination=”directory/path/on/server/”>

  <cfreturn “whatever”>

</cffunction>


這里是一個(gè)ASPX處理程序,請(qǐng)進(jìn)行修改以滿足您的需要:


using System;

using System.Web;

using System.IO;

public class FileHandler : IHttpHandler

{

public void ProcessRequest(HttpContext context)

{

string strFileName = Path.GetFileName(context.Request.Files[0].FileName);

string strExtension = Path.GetExtension(context.Request.Files[0].FileName).ToLower();

string strSaveLocation = context.Server.MapPath(“Upload”) + “” + strFileName;

context.Request.Files[0].SaveAs(strSaveLocation);


context.Response.ContentType = “text/plain”;

context.Response.Write(“success”);

}

public bool IsReusable

{

get

{

return false;

}

}

}

4、如何只允許某些文件類型?

最好的方法是檢查在onSubmit回調(diào)函數(shù)選定的文件類型,并讓函數(shù)返回false取消上傳選中的無(wú)效的文件。但是不要忘記添加一個(gè)服務(wù)器端的安全檢查。


new AjaxUpload(‘#button2′, {

action: ‘upload.php’,

onSubmit : function(file , ext){

if (! (ext && /^(jpg|png|jpeg|gif)$/.test(ext))){


// 擴(kuò)展名不允許

alert(‘錯(cuò)誤:無(wú)效的文件擴(kuò)展名!’);

// 取消上傳

return false;

}

}

});

5、如何工作的?

插件創(chuàng)建隱形的文件域控件在您提供的按鈕上。所以,當(dāng)用戶點(diǎn)擊您的按鈕時(shí),正常的文件選擇窗口就會(huì)顯示。之后用戶選擇一個(gè)文件,插件提交包含文件輸入框控件的表單到一個(gè)iframe中。因此,這不是真正的Ajax上傳,但同時(shí)帶來(lái)了用戶體驗(yàn)。


6、授權(quán)與使用條款

Ajax Upload 上傳插件是完全免費(fèi)的,服從MIT license使用許可。


二、我使用php制作的最簡(jiǎn)單的圖片上傳使用演示


首先,看圖,簡(jiǎn)述操作。

1. 單擊按鈕,選擇圖片



2. 選擇數(shù)張圖片,例如這里我選了三張,選完及上傳,結(jié)果如下



3. 結(jié)果在uploads文件夾下面就可以看到剛剛上傳的三張圖片了


代碼請(qǐng)參考Demo或源文件。


您可以狠狠地單擊這里:中文Demo頁(yè)面 | 精簡(jiǎn)版源文件下載


說(shuō)明:

1、源文件下載至本地,需要修改文件處理php頁(yè)面代碼的路徑。需要將此路徑對(duì)應(yīng)于您新建的用以存放圖片或其他文件的文件夾;

2、源文件與在線Demo有差別,源文件中的Demo無(wú)logo,排版,廣告等,純粹的Demo,代碼簡(jiǎn)潔,應(yīng)該會(huì)有幫助。

3、本實(shí)例是能上傳圖片,您可以去掉正則判斷,使支持其他格式。

4、本實(shí)例沒(méi)有使用JavaScript庫(kù)做輔助,這是由于本身Ajax Upload文件上傳插件就是純粹的JavaScript寫的,所以不依賴于任何的JavaScript庫(kù),可以直接使用JavaScript實(shí)現(xiàn)多文件上傳。

5、在線Demo請(qǐng)勿上傳敏感的圖片,謝謝合作。


三、結(jié)語(yǔ)

這款A(yù)jax Upload多文件上傳插件還是很受用的,本文將原項(xiàng)目頁(yè)面內(nèi)容原封不動(dòng)的翻譯過(guò)來(lái)了,時(shí)間倉(cāng)促,翻譯或書寫可能有不準(zhǔn)確,歡迎留言指正。原項(xiàng)目的Demo頁(yè)面有些亂,所以我自己用JavaScript+php實(shí)現(xiàn)了非常精簡(jiǎn)的文件上傳演示頁(yè)面,希望對(duì)您有所幫助。


四、補(bǔ)充

不少人問(wèn)我,有沒(méi)有支持file類型input的方法。我今天想了想,改了改,實(shí)現(xiàn)了一個(gè)類似<input type=”file” />的效果。

首先,你需要調(diào)用修改后的JavaScript文件,點(diǎn)擊這里(右鍵下載):修改版JS。


先看下效果,截自IE6:


原理如下,使用<input type=”text” id=”uploadUrl”> + <input type=”button”>的組合模擬<input type=”file” />的表現(xiàn)。然后,當(dāng)隱藏的file文件域發(fā)生改變的時(shí)候,讓其值等于<input type=”text”>的值就可以了。


具體效果您可以狠狠地點(diǎn)擊這里:效果demo


至于代碼部分,要在JavaScript的最后添加類似于下面的幾行代碼就可以了。



var oUrl = document.getElementById("uploadUrl"); //要顯示本地圖片路徑的文本框var oFile = document.getElementById("absFileInput");if(oFile){    oFile.onchange = function(){        oUrl.value = this.value;    };}


原創(chuàng)文章,轉(zhuǎn)載請(qǐng)注明來(lái)自張?chǎng)涡?鑫空間-鑫生活[http://www.zhangxinxu.com]

本文地址:http://www.zhangxinxu.com/wordpress/?p=342


(本篇完)


如果您覺得本文的內(nèi)容對(duì)您的學(xué)習(xí)有所幫助:


               

分享到:







0





               

標(biāo)簽: , , , , , , , , , , ,




這篇文章發(fā)布于 2009年11月7日,星期六,03:02,歸類于 外文翻譯。                        閱讀 66202 次, 今日 57 次



  
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服