通常情况下,要上传文件,需要两步处理 - 选择一个文件,然后确认上传。我正在上传个人资料照片。由于配置文件图片通常很小,我希望通过在文件选择时启动文件上传来减少我的用户的鼠标点击。请提出很好的,也许是常见的方法来实现这一目标(如果有的话,我也想知道他们的陷阱)。谢谢。开始选择文件后上传
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. 在Sencha Touch中选择文件后自动上传文件2.3
- 2. ASP.NET文件上传:如何选择文件后自动回发?
- 3. sahi脚本选择和上传文件
- 4. 上传自动文件选择
- 5. 如何选择和上传python文件
- 6. 如何选择多个文件上传?
- 7. 多个文件选择和上传
- 8. YUI上传程序在选择文件后挂起
- 9. ASP.Net上传多个文件后,从jQuery中选择它们
- 10. 用户使用fileUploadControl选择文件后自动上传
- 11. 提交文件上传/表单上的文件选择
- 12. 从开始选择的文本框
- 13. Rails罚款上传选择文件夹从选择框
- 14. CI上传错误,您没有选择要上传的文件
- 15. 您没有选择一个文件上传。但图像上传
- 16. 选择文件后,检查用户在上传前更改文件名
- 17. Bootstrap-选择始终打开
- 18. 选择过滤器后上传图片
- 19. SSIS包上传escel将向用户展示文件选择器窗口以选择要上传的文件
- 20. CodeIgniter上传文件错误:您没有选择要上传的文件
- 21. Codeigniter文件上传错误:'您没有选择要上传的文件'
- 22. Flash文件上传vs php文件上传 - 哪一个可以选择?
- 23. 在文件上传中选择自定义文件
- 24. Watin:文件上传...没有文件选择窗口?
- 25. 如何上传文件而不选择文件?
- 26. 选择文件机器人框架不上传文件
- 27. 选择与Django上传的文件的文件名
- 28. 如何在ICEfaces中选择上传文件的文件名?
- 29. jquery文件上传(blueimp) - IE9不支持多文件选择?
- 30. 创建UL列以选择和上传文件中的文件
感谢您提供您的解决方案。至于你提到的问题,我认为这不会引起我主要关心的问题。 – tamakisquare
对IE8的调用form.submit()会失败,并且访问被拒绝。 –
@Maurice:?在IE6中对我很好。 – bobince