使用jQuery破解上传程序以处理大文件
Hacking an uploader to handle large files using jQuery
有没有方法可以使用jQuery来提高文件上传器的性能?有一个系统,我试图破解,使上传过程更好。我只是在做一些前端覆盖,因为我没有访问他们服务器文件的权限。
当前的上传程序看起来像这样:
<ul>
<li> <input type="file"></li>
<li> <input type="file"></li>
<li> <input type="file"></li>
<li> <input type="file"></li>
<li> <input type="file"></li>
</ul>
使用这种方法的缺点是,你需要逐个选择图片,并且只能上传5个项目。
因此,我在其中一个输入中添加了multiple="multiple"属性,让我可以选择多个项目。
<ul>
<li> <input type="file" multiple="multiple"></li>
<li> <input type="file"></li>
<li> <input type="file"></li>
<li> <input type="file"></li>
<li> <input type="file"></li>
</ul>
通过这样做,我能够上传5个以上的项目(7-8个项目)。我遇到的一个问题是,它无法在长时间的上传中处理大文件。
它只能处理总共只有2MB的图像。但一旦图像总计达到2.5MB左右,它就会一直上传到100%,但最终会返回一个错误。
有没有值得检查的jQuery插件,你觉得会有帮助?我需要我的会话持续到它成功完成上传。我只能使用javascript来覆盖流程,仅此而已。
这不是您可以从客户端更改的内容。上传限制是在服务器上设置的,然后你必须在那里更改阈值(如何取决于你的互联网服务器Apache?IIS?)。
例如,如果使用PHP,可以将PHP.ini
中的upload_max_filesize
属性设置为所需的值(例如10Mb)。您可以使用.htaccess
文件在每个站点的基础上执行此操作(只需在属性名称前加上php_
)。
如果您将IIS与ASP.NET一起使用,则可以在System.Web
配置下的httpRuntime
部分中更改MaxRequestLength
(根据需要设置以字节为单位的值)。
无论您设置的值是多少,都会有一个限制,那么当达到该限制时,您也应该通知客户端(例如,IIS只是中止请求)。有几种方法可以实现这一点,我发现其中一种更容易的方法是将上传器放在iframe
中,并定期检查文档的readyState
属性(您可能需要多写一点代码,说明如何使其跨浏览器)。
- 通过命令行/批处理文件打开页面时,将javascript代码注入Google Chrome
- 我如何处理文件上传
- 在Node Webkit应用程序中从DOM单击按钮时运行批处理文件
- 如何在 Javascript 中上传和处理文件
- Jsfidle无法处理文件
- 执行批处理文件的Javascript,该文件包含基于每个会话的环境变量设置
- Windows批处理文件,使用文件中的行在命令中构造参数
- 上传到FTP之前预处理文件
- 使用JavaScript的Google Drive:处理文件内容
- 如何从批处理文件调用一个带有2个参数的java脚本函数,并将结果返回到环境变量
- 从批处理文件访问JavaScript方法
- 使用批处理文件运行咕噜声构建
- 如何在 JavaScript 中逐个执行批处理文件
- 使用 Javascript 运行批处理文件 - Firefox
- 如何使用 onload 事件从 HTML 网站在 Windows 2008 上的文件共享上运行批处理文件
- 如何在Windows Store / WinJS应用程序中处理文件激活
- 使用 javascript 运行 Apache 服务器中存在的批处理文件
- 使用 Javascript/Windows 批处理文件混合将非 ASCII 字符编码为 HTML
- 创建自定义的 Grunt 任务来处理文件
- 需要带有浏览器化和浏览器化轨道的链轮预处理文件