【发布时间】:2015-10-12 23:57:46
【问题描述】:
我希望这里有人可以为我指明正确的方向。我尝试搜索论坛,但没有找到关于该主题的任何内容。
无论如何...我正在使用我的网站将 PHP 文件上传到 MySQL 数据库中。这一切都很好,除非文件在 ~4.5Mb 及以上范围内,脚本失败。 MySQL 不返回错误,插入 id 为 0,PHP 不返回错误。
我在我的 php.ini 文件中尝试了以下内容:
max_execution_time = 600
max_input_time = 600
post_max_size = 15M
upload_max_filesize = 15M
memory_limit = -1
我在 MySQL 中设置了 max_allowed_packet 大小:
Variable_name Value
max_allowed_packet 16777216
文件内容的列类型为mediumblob
这里是进行上传的 PHP 代码,为了排除不相关的东西而缩短了一点:
...
$con->query("SET GLOBAL max_allowed_packet = 16777216;");
$con->autocommit(FALSE);
$fp = fopen($file, 'r');
$sql_query->bind_param('ssisb', $FILE['FILE_NAME'], $FILE['FILE_DESC'], $FILE['FILE_SIZE'],
$FILE['FILE_TYPE'], $null);
while(!feof($fp)){$sql_query->send_long_data(4, fread($fp, 8192));}
fclose($fp);
$sql_query->execute();
$fileIDs[$fileIndex] = $sql_query->insert_id;
...
$con->commit();
...
这是一个循环,因为您可以通过它上传多个文件,只要文件单独低于 ~4.5Mb,即使这样做也可以正常工作
这里有人知道为什么会发生这种情况,或者我可以通过任何其他方式解决此问题吗?
【问题讨论】:
标签: php mysql file-upload mysqli