通常情況下,要上傳文件,需要兩步處理 - 選擇一個文件,然後確認上傳。我正在上傳個人資料照片。由於配置文件圖片通常很小,我希望通過在文件選擇時啓動文件上傳來減少我的用戶的鼠標點擊。請提出很好的,也許是常見的方法來實現這一目標(如果有的話,我也想知道他們的陷阱)。謝謝。開始選擇文件後上傳
7
A
回答
6
當從文件上傳字段中選擇文件時,change
事件將觸發。如果未選擇文件(字段被清除),字段的值將是''
。
<form method="post" action="upload.script">
<input type="file" id="formfile"/>
<input type="submit" id="formsubmit"/>
</form>
<script type="text/javascript">
var file= document.getElementById('formfile');
var submit= document.getElementById('formsubmit');
// If scripting is available, can auto-submit the form, so no submit
// button needed.
//
submit.parentNode.removeChild(submit);
// When field is filled in with a filename, submit form
//
file.onchange= function() {
if (this.value!=='')
this.form.submit();
};
</script>
這是個好主意嗎?可疑的。如果用戶不期望自動提交表單可能會產生負面影響。
3
你可以使用jQuery自動發佈該文件以在選擇服務器...
問題:
如果哪些用戶不想要選擇該文件,但該文件已被上傳到服務器?
如果上一次發生在文件上傳完成之前該怎麼辦?
當用戶什麼都不做並關閉頁面時如何?您要保留文件多長時間
1
如果您使用GMail,您會注意到它們具有用於將文件附加到電子郵件的拖放解決方案。從桌面拖動到預定義的區域和wallah。
如果您對使用此功能的人(如果他們保持最新狀態,最應該這樣做)支持HTML5,那麼您可以使用內置於HTML5的拖放功能。
嘗試尋找這個:http://www.thebuzzmedia.com/html5-drag-and-drop-and-file-api-tutorial/
你也可以給像Plupload一試(http://www.plupload.com/),但可能是矯枉過正這一點。 Plupload更適用於需要進度動畫和分塊的較大文件。但是,我知道你可以編寫腳本,以便立即開始上傳,並在完成後立即重定向。它也可能需要你沒有設置的服務器端工作。
相關問題
- 1. 使用jQuery選擇文件後開始上傳。
- 2. 選擇下拉後文件上傳
- 3. ASP.NET文件上傳:如何選擇文件後自動回發?
- 4. 在Sencha Touch中選擇文件後自動上傳文件2.3
- 5. 用戶在富文件中選擇文件後取消上傳:上傳
- 6. Laravel文件上傳開始下載
- 7. 無法上傳文件(未選擇要上傳的文件)
- 8. fyneworks多文件上傳 - 上傳選擇後添加描述文本框
- 9. Sahi - 打開窗口選擇要上傳的文件
- 10. 打開文件選擇dojox /上傳器編程
- 11. 文件上傳器沒有開始上傳表單提交
- 12. 上傳文件在jquery文件上傳插件中選擇的文件
- 13. 如何從文件對話框中選擇文件後立即上傳文件?
- 14. 多個文件選擇和上傳
- 15. 上傳自動文件選擇
- 16. 選擇要從源上傳的文件
- 17. EXTJS 4.1 - 多選擇並上傳文件
- 18. 選擇文件進行編程上傳
- 19. 如何選擇和上傳python文件
- 20. Excel文件上傳和選擇列
- 21. 如何選擇多個文件上傳?
- 22. sahi腳本選擇和上傳文件
- 23. SWF上傳文件選擇後會發生什麼?
- 24. ASP.Net上傳多個文件後,從jQuery中選擇它們
- 25. 用戶使用fileUploadControl選擇文件後自動上傳
- 26. 選擇文件後立即上傳圖像
- 27. YUI上傳程序在選擇文件後掛起
- 28. 選中複選框時打開文件上傳文件
- 29. 提交文件上傳/表單上的文件選擇
- 30. 從開始選擇的文本框
感謝您提供您的解決方案。至於你提到的問題,我認爲這不會引起我主要關心的問題。 – tamakisquare
對IE8的調用form.submit()會失敗,並且訪問被拒絕。 –
@Maurice:?在IE6中對我很好。 – bobince