2010-12-17 198 views
0

在此打上路障。使用ajax上傳文件

是我到目前爲止有:

<input id="newFile" type="file"/> 
    <span style="background-color:orange;" onClick="newImage()">HEYTRY</span> 

這顯然不是很遠。

我正在尋找一個基本的方式來加載這個圖像到一個變量,將變量轉換爲可通過URL(ajax)通過的東西,然後通過php完成我的目標,一旦它可以從url中提取位。

並不像我預料的那麼容易。

任何幫助將是偉大的。

謝謝

回答

1

這不適用於每個瀏覽器,但這是通過AJAX執行多個文件上傳的好方法:

function upload_files(entityKey, files, url, progress_callback) { 
    var xhr = new XMLHttpRequest(), formData = new FormData(); 
    xhr.upload['onprogress'] = progress_callback; 

    formData.append('entityKey', entityKey); 
    $.each(files, function(i, file) { formData.append('file[]', file);}); 

    xhr.open("post", url, true); 
    xhr.setRequestHeader("Cache-Control", "no-cache"); 
    xhr.send(formData); 
} 

entityKey是服務器上參數的示例。 「文件」參數來自文件類型輸入表單元素的「文件」屬性(作爲支持多個數組的數組)。 'progress_callback'參數是一個函數,它接受一個具有(至少)'loaded'和'total'字段(單位是字節)的對象。它不關心服務器響應。

3

我使用這個插件上傳文件。 http://www.uploadify.com/

這有幫助嗎?

+0

謝謝,但我真的想編碼,並瞭解發生了什麼 – 2010-12-17 03:32:46

+0

@jason爲什麼要重新發明輪子? – 2010-12-17 03:56:29

0

我使用這個插件上傳文件。

FORM PLUGIN

u可以使用這個插件的方法來傳遞您的$ _FILES數據,並在以後使用PHP代碼:

$('.yourFormUpload').ajaxSubmit(options); 

的選項變量u可以看到它的文檔