黑客上传者使用jQuery处理大文件

时间:2012-07-21 07:40:12

标签: javascript jquery override

有没有办法可以使用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个项目。

所以我做了,我在其中一个输入中添加了多个=“多个”属性,让我选择多个项目。

<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项)。我遇到的一个问题是它无法在长时间的上传过程中处理大文件。

它只能处理总计最多2 MB的图像。但是一旦图像总和达到2.5 MB,它将一直上传到100%,但最终会返回错误。

是否有值得检查的jQuery插件,你似乎会有所帮助?我需要我的会话持续到成功完成上传。我只能使用javascript来覆盖这个过程,仅此而已。

1 个答案:

答案 0 :(得分:1)

这不是你可以从客户端改变的东西。在服务器上设置上传限制,然后你必须在那里更改那个阈值(如何取决于您的Internet服务器,Apache?IIS?)。

例如,如果您使用的是PHP,则可以将upload_max_filesize中的PHP.ini属性设置为您需要的值(例如10Mb)。您可以使用.htaccess文件在每个站点的基础上执行此操作(只需在属性名称前加php_)。

如果您在IIS中使用IIS,则可以在MaxRequestLength配置下的httpRuntime部分中更改System.Web(将字节值设置为您需要的值)。

无论你设定的价值是多少,你都会有一个限制,那么当它到达时你也应该通知你的客户(例如IIS就是中止请求)。有几种方法可以实现这一点,我发现更容易的是将上传器置于iframe内并定期检查文档的readyState属性(您可能需要多写一点)您希望跨浏览器的代码。