Php can';t上载大于1MB的.pdf文件---(错误::mysql服务器已消失)

Php can';t上载大于1MB的.pdf文件---(错误::mysql服务器已消失),php,mysql,Php,Mysql,我已经编写了一个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 但这并不能解决我的问题。问题仍然是一样的“它无法上传

我已经编写了一个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*/
注意::我在发送查询时也使用了重新连接。因此没有连接问题

编辑
在my.ini中没有任何东西比得上
max\u allowed\u packet

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

[mysqld]
    max_allowed_packet=16M
在那里-或任何足够高的数字


还请注意此处解决的相同问题:

导致此问题的原因很多,您可以在此处获得良好的概述:

您可以尝试以下方法:

ini_set('mysql.connect_timeout', 300);
ini_set('default_socket_timeout', 300);

MySQP/PHP返回的确切错误是什么?mysql服务器已消失。您试图在哪种类型的字段中存储pdf?我认为longblb支持高达4.3 GB的文件。我不喜欢在数据库中存储二进制文件。这是个坏主意,通常有很好的理由。认真地说,将文件作为普通文件保存到磁盘;数据库只需要知道文件的路径。将其保存到DB会带来各种性能,安全性和复杂性问题根本不需要发生。@RitabrataGautam因为这是一个关于MySQL设置的问题,我想说,只重新启动MySQL服务器就足够了。对不起。我对MySQL知之甚少。你能告诉我如何重新启动MySQL吗server@RitabrataGautam假设您使用的是Windows XP,转到控制面板/管理工具/服务。在列表中找到MySQL服务并选择“重新启动”-或者-如果您找不到它,在更改my.ini文件后重新启动您的计算机-服务将随之重新启动:)现在我要说的是非常令人惊讶的。在我的“my.ini”中。没有什么比
max\u allowed\u packet
。。。。我找不到it@RitabrataGautam:这一点也不奇怪。这只意味着mysql使用的是默认值1M——您需要在[mysqld]部分下的my.ini文件的某处插入行max_allowed_packet=16M。还要确保您在my.ini文件中进行了更改(硬盘上可能有多个副本),运行代码时需要多长时间才会出现错误?