【问题标题】:Upload Large Files using php?使用 php 上传大文件?
【发布时间】:2012-01-12 04:56:54
【问题描述】:

我需要上传一个大文件(最大 190mb) 这是限制的服务器详细信息:

memory_limit = 50M
post_max_size = 192M
file_uploads = On
upload_max_filesize = 192M 
max_execution_time = 1800 sec
max_input_time = 1800 sec

这是我的代码:

 $query="update tbl_Cards set CardName='$cardname',Description='$Description'";
    if($cardvideo)
    {
      if($_FILES["cardvideo"]["type"] == "video/quicktime"||$_FILES["cardvideo"]["type"] == "video/mov"||$_FILES["cardvideo"]["type"] == "video/mp4"||$_FILES["cardvideo"]["type"] == "video/mpv"||$_FILES["cardvideo"]["type"] == "video/3gp")
      {
        if($_FILES["cardvideo"]["size"]<=10485760)
        {
          $cardvideo=$date."card.mp4";
          $tmppath3="services/video/".$cardvideo;
          if(move_uploaded_file($_FILES['cardvideo']['tmp_name'],$tmppath3))
          {
          $thumb=$date.".jpg";
          $thumbDirectory="services/VideoCapturePic/";
          exec("convert \"{$tmppath3}[0]\" -colorspace RGB -geometry 200 $thumbDirectory$thumb");
          $query.=",Video='$cardvideo',CapturePic='$thumb'";
        }
        $query.="where CardId='$card'";

        $result=mysql_query($query);
        if($result)
        {
        } else
        {
        echo mysql_error();
        }

但是当我上传 10 mb 的文件时,它们会成功上传,但是当我尝试上传大文件(20 或 30 或 40 或 50)时,我会收到以下响应:

Column count doesn't match value count at row

我做错了什么?

【问题讨论】:

  • 列数与行中的值数不匹配这是我的错误消息
  • 该错误与文件大小无关,但与一个带有空字段的查询有关,因此它会缩短一个字段...必须净化您的文件(抱歉,仅此而已) .将其拆分为多个部分,以便您可以隔离有缺陷的数据......也许带有撇号 (') 的东西会提前结束查询
  • 好的,我只是在发布示例代码,但是当我上传 10 mb 文件上传成功上传 lagre 文件时,我遇到了这个问题,所以我认为上传文件的时间到期然后脚本终止
  • @Alfabravo:如何“净化”文件?
  • @Gabe 作为批量更新,我们的想法是拥有适当的数据(在类似 ETL 的过程中),格式正确。例如,验证正在插入的数据的脚本可能会有所帮助。责任由生成文件的人承担。

标签: php file-upload


【解决方案1】:

它不仅是 php.ini,而且服务器也可以限制您的请求大小。虽然默认情况下在 apache 中它没有设置限制文件大小,但我认为你应该检查一次。 LimitRequestBody 指令用于限制请求大小。检查所有配置文件中的指令(我假设您使用的是 apache)并更改目录的值。 示例用法:

<Directory "/var/www/vhost/mydir/uploads">
    LimitRequestBody 204444344
</Directory>

【讨论】:

  • 我正在使用 ftp 进行服务器连接
  • 如何查看 ftp 中的 ftp 详细信息限制
  • 您好,我正在使用 linux 服务器,如何检查服务器中的 limitRequestBody
  • 这与您服务器上的操作系统无关,它与您正在使用的我们服务器有关。例如apache/weblogic 等。所以你需要在那里检查配置。
  • 是的..我正在使用 Apache 服务器,所以我如何更改服务器中的 limitRequestBody 请清楚地告诉我
猜你喜欢
  • 2013-07-07
  • 2010-12-14
  • 1970-01-01
  • 1970-01-01
  • 2012-07-20
  • 1970-01-01
  • 2010-10-19
  • 2012-05-11
  • 2011-06-04
相关资源
最近更新 更多