有没有办法可以使用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来覆盖这个过程,仅此而已。
答案 0 :(得分:1)
这不是你可以从客户端改变的东西。在服务器上设置上传限制,然后你必须在那里更改那个阈值(如何取决于您的Internet服务器,Apache?IIS?)。
例如,如果您使用的是PHP,则可以将upload_max_filesize
中的PHP.ini
属性设置为您需要的值(例如10Mb)。您可以使用.htaccess
文件在每个站点的基础上执行此操作(只需在属性名称前加php_
)。
如果您在IIS中使用IIS,则可以在MaxRequestLength
配置下的httpRuntime
部分中更改System.Web
(将字节值设置为您需要的值)。
无论你设定的价值是多少,你都会有一个限制,那么当它到达时你也应该通知你的客户(例如IIS就是中止请求)。有几种方法可以实现这一点,我发现更容易的是将上传器置于iframe
内并定期检查文档的readyState
属性(您可能需要多写一点)您希望跨浏览器的代码。