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 = 20M
和post_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)
如果修改 XHR,则 JQuery AJAX 请求失败并出现 CORS 错误