久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Ajax Upload多文件上傳插件翻譯及中文演示 ? 張鑫旭

 風之飛雪 2014-03-13

by zhangxinxu from http://www.

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



一,、以下為項目主頁正文翻譯(包括代碼注釋的翻譯):


1,、Ajax Upload上傳插件


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


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


Demo實例

下面是一個在jQuery下使用Ajax Upload插件的實例。


下載

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


問題,,貢獻和最新版本

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


2、如何去使用它,?


創(chuàng)建上載

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


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

接下來,,您應該創(chuàng)建Ajax上傳實例,。您可以使用以下代碼創(chuàng)建最簡單的形式:


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

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

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


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

配置Ajax上傳


new AjaxUpload(‘#upload_button_id’, {

// 服務器端上傳腳本

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


action: ‘upload.php’,

// 文件上傳的名字

name: ‘userfile’,

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

data: {

example_key1 : ‘example_value’,

example_key2 : ‘example_value2′

},


// 篩選后提交文件

autoSubmit: true,

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

// HTML (text) 和 XML 自動檢測

// 當您使用JSON作為響應時很實用,在這種情況下就設置為 “json”

// 也要設置服務器端的響應類型為text/html, 否則在IE6下是不工作的


responseType: false,

// 文件選擇后使用

// 當autoSubmit為disabled時很管用

// 您可以通過返回false取消上傳

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

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


onChange: function(file, extension){},

// 文件上傳時調用

// 您可以通過設置返回false 取消上傳

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

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


onSubmit: function(file, extension) {},

// 當文件上傳完成的時候調用

// 警告,!不要使用”false”字符串作為服務器的響應

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

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


onComplete: function(file, response) {}

});

注意:不要使用數(shù)據(jù)參數(shù)附加動態(tài)數(shù)據(jù),,就像“data: (txt:textfield.value)”,因為它將在AJAX Upload實例創(chuàng)建的時候分配數(shù)據(jù)且以后不會改變,。如果你想文本框的傳遞的其他數(shù)據(jù),,使用在onSubmit回調函數(shù)中的SetData方法。


實例方法

*submit – 提交文件到服務器(當autoSubmit被禁用時有用)

*disable – 禁用上傳按鈕

*enable – 允許上傳按鈕

*destroy – 清理AjaxUpload對象

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


//您可以使用這些方法來配置AJAX的上傳

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

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

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

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

new AjaxUpload(‘div_id’, {

action: ‘upload.php’,

onSubmit: function() {


//僅允許一個上傳

this.disable();

}

});

});

3,、如何訪問上載的文件?

對于服務器端的代碼,,文件似乎是以簡單的形式被上傳,,所以您可以使用任何您想用的語言。

您訪問上傳文件可以使用:

* PHP: $_FILES['userfile']

* Rails: params[:userfile]

請注意,,’userfile’是”name”選項的默認值


您可以訪問其他一些參數(shù)通過:

* PHP: $_POST['yourkey']

* Rails: params[:yourkey]


服務器端腳本

如果您使用的是PHP的,,這里是一個簡單的例子,我從PHP手冊直接獲得的,。


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

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


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

echo “success”;

} else {


// 警告,!不要使用字符串”FALSE”作為一個響應!

// 否則onSubmit 事件不會調用


echo “error”;

}


ColdFusion的文件上傳,。 (默認準系統(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>


這里是一個ASPX處理程序,,請進行修改以滿足您的需要:


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回調函數(shù)選定的文件類型,,并讓函數(shù)返回false取消上傳選中的無效的文件。但是不要忘記添加一個服務器端的安全檢查,。


new AjaxUpload(‘#button2′, {

action: ‘upload.php’,

onSubmit : function(file , ext){

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


// 擴展名不允許

alert(‘錯誤:無效的文件擴展名!’);

// 取消上傳

return false;

}

}

});

5,、如何工作的,?

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


6,、授權與使用條款

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


二,、我使用php制作的最簡單的圖片上傳使用演示


首先,看圖,,簡述操作,。

1. 單擊按鈕,選擇圖片

單擊按鈕

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

選擇三張圖片

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

三張上傳的圖片文件


代碼請參考Demo或源文件,。


您可以狠狠地單擊這里:中文Demo頁面 | 精簡版源文件下載


說明:

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

2、源文件與在線Demo有差別,,源文件中的Demo無logo,,排版,廣告等,,純粹的Demo,,代碼簡潔,應該會有幫助,。

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

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

5,、在線Demo請勿上傳敏感的圖片,,謝謝合作。


三,、結語

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


四,、補充

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

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


先看下效果,,截自IE6:

截圖 張鑫旭-鑫空間-鑫生活


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


具體效果您可以狠狠地點擊這里:效果demo


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



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


原創(chuàng)文章,轉載請注明來自張鑫旭-鑫空間-鑫生活[http://www.]

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


(本篇完)


如果您覺得本文的內(nèi)容對您的學習有所幫助:支付鼓勵


               

分享到:







0





               

標簽: , , , , , , , , , , ,




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



  

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙,。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報,。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多