【发布时间】: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