JQuery AJAX 上传文件不适用于超过 10 MB 的文件

Posted

技术标签:

【中文标题】JQuery AJAX 上传文件不适用于超过 10 MB 的文件【英文标题】:JQuery AJAX upload file does not work with files more than 10 MB 【发布时间】:2019-06-29 21:18:07 【问题描述】:

在过去的 3 个小时里,我一直被这个问题困扰。我查看了无数指南和帖子均无济于事。

我有一个用户可以上传文件的系统。一旦他们选择了一个文件,我想上传文件(通过 php 文件)并向用户显示上传进度。我尝试使用$.ajax(使用FormData)和JQuery Form 插件来做到这一点。它们都适用于小于 10 MB 的较小文件,但我发现当我尝试上传大于 10 MB 的文件时,我的 PHP 文件没有收到任何信息($_POST$_FILE)。

如何解决此问题,或者如何允许用户上传文件并向他们显示准确的上传进度条?

提前致谢。

【问题讨论】:

检查您的php.ini 可能是max_size 设置 ^^ 正如@Tsuna 所说.. 检查ini 文件并提高限制。即upload_max_filesize = 20Mpost_max_size = 21M @Tsuna 嗯...我检查了一下,它说最大为 8MB,我无法编辑 php.ini。我怎么可能不使用 POST 来制作进度条? @k97513 你不能编辑php.init是什么意思? @Tsuna 我正在使用共享主机,因此我无法访问php.ini 【参考方案1】:

您应该检查 PHP 脚本中的两个变量:

ini_get('post_max_size')ini_get('upload_max_filesize') 以及用户是否能够上传多个文件ini_get('max_file_uploads')。如果一个或所有限制低于您的预期,您应该在您的 php.ini 中提高它们

编辑:将upload_max_filesize 添加到列表中。

【讨论】:

hmm...我检查了一下,它说最大为 8MB,我无法编辑 php.ini。我怎么可能不使用 POST 来制作进度条? “不使用 POST 制作进度条”是什么意思?您不想接收用户在您的服务器上上传的数据? 既然我无法修改php.ini 以容纳更大的文件,我还能如何上传文件? 主要问题是如果您不使用$_POST,您根本无法上传文件。你不能联系你的房东吗? 我会的。感谢您的帮助。

以上是关于JQuery AJAX 上传文件不适用于超过 10 MB 的文件的主要内容,如果未能解决你的问题,请参考以下文章

JSF 2.2 - 文件上传不适用于 Ajax。表单的编码类型似乎不正确(仅通过 AJAX)

Jquery文件上传不适用于Select2

如果修改 XHR,则 JQuery AJAX 请求失败并出现 CORS 错误

jRaty jQuery 插件似乎不适用于 AJAX/JSON

PHP/jQuery S3 上传不适用于带空格的文件

通过 AJAX 上传图片,不能在 jQuery 中使用 serialize() 方法?