【发布时间】:2012-01-22 17:30:19
【问题描述】:
我有一个可以附加一个或多个(大)文件的表格。我想实现以下目标:
必须向用户显示文件上传进度
上传过程可以随时被用户中断
如果提交后表单上的其他数据出现错误,则不应再次请求文件;换句话说,即使表单可以多次重新提交,文件也只会上传一次
如果文件和表单数据通过Ajax分开独立发布,上传但未使用的文件应该被自动清除
安全注意事项:例如如果文件是单独发送的,那么恶意攻击者应该无法通过知道会话 ID 或浏览器中可用的其他信息来覆盖服务器上的文件
浏览器要求:最新版本的 Safari、Chrome 和 Firefox; IE9是可取的
服务器端:请不要推荐第三方框架;该解决方案应该如此通用,以至于任何人都可以用他们最喜欢的语言来实现它——Python、Ruby、PHP、Perl 等(可能还有 JavaScript)
考虑到上述情况,实现此功能有哪些提示、技巧和最佳实践?
【问题讨论】:
-
所以您希望您的用户能够在选择文件窗口中选择多个文件,对吧?
-
@Julien Bourdon:这不是必需的,尽管我知道在大多数现代浏览器中都是可能的。
标签: php javascript forms file-upload xmlhttprequest