2014-02-19 76 views
0

我在表單中使用這個插件:jQuery HTML5 uploader(參見演示)。當用戶提交表單時,我想用POST方法發送上傳的文件。動態添加文件到輸入

也許我可以創建一個input[type="file"],使其隱藏,並動態地添加上傳的文件與輸入內的插件?有可能的?


所以,如果我不能做到這一點,我怎麼能上傳文件到服務器有了這個插件,提交按鈕,只有當用戶點擊?我知道這個插件已經在使用AJAX,但是我想上傳它們只有如果用戶點擊一個按鈕。

也許我應該創建一個名爲files的變量,當用戶點擊提交按鈕時,我自己使用AJAX發送文件和其他輸入數據?

事情是這樣的:

jQuery("#dropbox").html5Uploader({ 
    onClientLoadStart: function(event, file) { 
     files[] = file; 
     [...] 
    } 
}); 

[...] 

jQuery("#button").on("click", function() { 
    jQuery.ajax({ 
     data: files 
    }); 
    [...] 
}); 

回答

0

你不能因爲瀏覽器安全性的文件上傳選擇的文件。

用戶只能做到這一點,而不是腳本。

+0

您能檢查我在主要消息中的更改嗎? – guest459473

1

出於安全原因,您不能那樣做。想象一下可能性。我在隱藏字段中通過JavaScript輸入文件。你按提交。我拿到你的文件。任何文件。恐怖,對吧?

0

這個腳本已經將文件上傳到服務器..你所需要的是一種從服務器取回文件名/ ID和將它們連接到隱藏的形式..比當有人提交表單,你就會知道哪些他上傳的文件..

youd通過聽取onSuccess事件來完成此操作。

+0

是的,我知道,但它動態上傳文件(使用'name'和'postUrl'參數),而不是當用戶點擊提交按鈕時。我錯了嗎? 我使用PHP,所以我必須使用全局'$ _POST'變量來訪問文件數據。 – guest459473

+0

可以說你postUrl是post.php中,當圖像postes到該網址添加他們的名稱和文件夾到數據庫,並返回其ID(或ID)......現在你上傳的形式,你需要有JS功能和聽onSuccess事件..在這種情況下,你得到的上傳圖像的id比javascript/jquery你添加到隱藏的輸入字段的ID ..當表單submited你得到tham圖像ID –