1

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

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

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

4

1 回答 1

1

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

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

如果您将 IIS 与 ASP.NET 一起使用,则可以在配置下MaxRequestLengthhttpRuntime部分中进行更改System.Web(以字节为单位将值设置为您需要的值)。

无论您设置的值是什么,您总会有一个限制,那么您也应该在达到限制时通知您的客户端(例如 IIS 只是中止请求)。有几种方法可以实现这一点,我发现一种更简单的方法是将上传器放在一个文件中iframe并定期检查readyState文档的属性(您可能需要编写更多的代码来实现它的交叉-浏览器)。

于 2012-07-21T07:53:00.843 回答