PHP上传图像表单+通过GD库调整大小。但它的故障超过8mb
我制作了一个从Post4图像接收的php脚本,然后存储它们并创建thumbs trought GD php库。问题是,只有当我加载2张4mb的照片或者4张2MB的照片,或者更少的时候,它才会工作;事实上,最大8 mb。为什么?我检查内存限制64mb、上传最大文件大小25mb和上传最大文件大小120秒的值,如果我增加它们,什么也不会发生 似乎完全忽略了POST数组:我看到这一点是因为我在php脚本上添加了一些回声。代码如下:PHP上传图像表单+通过GD库调整大小。但它的故障超过8mb,php,file-upload,gd,Php,File Upload,Gd,我制作了一个从Post4图像接收的php脚本,然后存储它们并创建thumbs trought GD php库。问题是,只有当我加载2张4mb的照片或者4张2MB的照片,或者更少的时候,它才会工作;事实上,最大8 mb。为什么?我检查内存限制64mb、上传最大文件大小25mb和上传最大文件大小120秒的值,如果我增加它们,什么也不会发生 似乎完全忽略了POST数组:我看到这一点是因为我在php脚本上添加了一些回声。代码如下: if(($_FILES['userfile1']['tmp_name']
if(($_FILES['userfile1']['tmp_name']!="") or ($_FILES['userfile2']['tmp_name']!="") or ($_FILES['userfile3']['tmp_name']!="") or ($_FILES['userfile4']['tmp_name']!="")) {
// JPG/JPEG, max 4mb each
for($i=1; $i<=4; $i++) {
if ($_FILES['userfile'.$i]['tmp_name']!="") {
$path_parts=pathinfo($_FILES['userfile'.$i]['name']);
if(((strtolower($path_parts['extension'])=='jpg') or (strtolower($path_parts['extension'])=='jpeg'))
&& ($_FILES['userfile'.$i]['size']<=4194304)) {
} else {
$wrong=1;
}
}
}
if(isset($wrong)) {
$abort=1;
$messaggio="Errore - Formato delle foto non valido. Assicurati che il formato sia jpg/jpeg e che la foto non superi i 3 Megabyte";
} else {
mkdir("./articles/photos/".$articleid);
mkdir("./articles/photos/thumbs/".$articleid);
$sql="";
for($i=1; $i<=4; $i++) {
if ($_FILES['userfile'.$i]['tmp_name']!="") {
$photoid=$articleid."-".$i;
$uploaddir="./articles/photos/".$articleid."/";
$userfile_tmp=$_FILES['userfile'.$i]['tmp_name'];
$userfile_name=$_FILES['userfile'.$i]['name'];
$userfile_name=$photoid."@".trim(str_replace(" ", "", $_FILES['userfile'.$i]['name']));
$path_parts=pathinfo($_FILES['userfile'.$i]['name']);
$photoondb=$photoid.".".strtolower($path_parts['extension']);
move_uploaded_file($userfile_tmp, $uploaddir.$photoondb);
// thumbs
$name_new_image="./articles/photos/thumbs/".$articleid."/".$photoondb;
$file = "./articles/photos/".$articleid."/".$photoondb;
list($actualw, $actualh, $type, $attr) = getimagesize($file);
if(($actualw>100) or ($actualh>100)) {
if($actualw>$actualh) {
$v1=$actualw/100;
$width=$actualw/$v1;
$height=$actualh/$v1;
} else {
$v1=$actualh/100;
$width=$actualw/$v1;
$height=$actualh/$v1;
}
}
$qualita=70;
$new_image=imagecreatetruecolor($width, $height);
$src_image=imagecreatefromjpeg($file);
imagecopyresampled($new_image, $src_image, 0, 0, 0, 0, $width, $height, imagesx($src_image), imagesy($src_image));
imagejpeg($new_image, $name_new_image, $qualita);
imagedestroy($new_image);
imagedestroy($src_image);
if($sql!="") $sql.=", ";
$sql.="('$articleid', '$photoondb')";
}
}
}
}
我希望您或多或少能理解我的意思:您又错过了一个参数:。它的默认值是8M…有两种方法可以解决此问题 更改php.ini 为了让它工作,我必须改变参数
post_max_size = 8M
upload_max_filesize = 2M
到
将以下内容添加到.htaccess文件中
您需要注意两件事:post_max_size和upload_max_filesize。它们都是。var\u dump-ing$\u POST不会显示您上载的文件。相反,请尝试使用var\u dump$\u文件
post_max_size = 100M
upload_max_filesize = 100M
php_value upload_max_filesize 10M
php_value post_max_size 20M