2

我已经编写了一个 php 代码来将 .pdf 文件上传到我的数据库中。该代码适用于所有小于 1 mb 的 pdf。但每当我尝试上传大于 1 mb的文件时,它都无法上传抛出错误 mysql 服务器已消失。

注意:: 我已通过以下更改更改了我的 php.ini

post_max_size=128M
upload_max_filesize=128M
memory_limit = 128M
max_execution_time = 300
max_input_time = 300

但这并没有解决我的问题。问题仍然存在“上传失败并抛出错误mysql服务器已消失。” 我的 PHP 代码是 ::

if(isset( $_POST['save']) and $_POST['save'] == "save")
{
  ini_set('default_socket_timeout', 1500);
  include_once $_SERVER['DOCUMENT_ROOT'].'/include/db.inc.php' ;
  if (!is_uploaded_file($_FILES['upload']['tmp_name']))
  {
    echo 'There was no file uploaded!';
    exit();
  }
  /*NOW I HAVE WRITTEN THE PHP CODE TO INSERT THE FILE INTO MY DATABASE.WHAT I CAN
  ASSURE YOU THIS PART IS PERFECT BECAUSE THE CODE IS SUCESSFUL ALL OTHER CASES
  WHICH ARE LESS THAN 1 MB IN SIZE*/

注意::我在发送查询时也使用了重新连接。所以没有连接问题

编辑max_allowed_packet我的 my.ini 中没有任何东西

4

2 回答 2

8

我相信您还必须配置 MySQL 服务器(Windows 上的 my.ini)确保有:

[mysqld]
    max_allowed_packet=16M

在那里 - 或任何足够高的数字

还要注意这里解决了同样的问题:how to change max allowed packet size

于 2013-03-15T14:08:18.853 回答
0

有很多事情会导致这种情况,你可以在这里得到一个很好的概述:http: //dev.mysql.com/doc/refman/5.1/en/gone-away.html

你可以先试试这个:

ini_set('mysql.connect_timeout', 300);
ini_set('default_socket_timeout', 300);
于 2013-03-15T14:09:50.413 回答