有人可以帮助我,几乎所有的可能头发都已经走了。试图将大图片上传到网站时遇到问题。我已经解决了这个问题,一切似乎都正常。我用10Mb + JPEG文件测试了我的脚本,并且看起来都很完美。但是,我刚刚尝试从某个电话(4.9Mb)上载JPEG,并且出现500错误。看看PS中的图片,尺寸为72dpi时宽1054px,高1874px。任何人都可以帮助我,为什么这是一个问题,我怎么解决它?如果我把图片缩小(700px宽),它会上传吗?大尺寸PHP上传图片
有没有人有同样的问题?下面是我的代码,它旋转图像(因为手机上传的一些内容一旦上传),然后调整大文件的大小以便存储。我测试过的所有照片似乎都能正常工作......除了这张照片外,这张照片很蠢!有人请帮忙!
$file_name = $_FILES['newPicture']['tmp_name'];
correctImageOrientation($file_name);
AdjustPicSize($file_name);
function correctImageOrientation($file_name) {
if (function_exists('exif_read_data')) {
$exif = exif_read_data($file_name);
if($exif && isset($exif['Orientation']) || !isset($exif['Orientation'])) {
$orientation = $exif['Orientation'];
if($orientation != 1){
$img = imagecreatefromjpeg($file_name);
$deg = 0;
switch ($orientation) {
case 3:
$deg = 180;
break;
case 6:
$deg = 270;
break;
case 8:
$deg = 90;
break;
}
if ($deg) {
$img = imagerotate($img, $deg, 0);
}
// then rewrite the rotated image back to the disk as $filename
imagejpeg($img, $file_name, 95);
} // if there is some rotation necessary
} // if have the exif orientation info
} // if function exists
}
function AdjustPicSize($file_name)
{
$maxDim = 800;
list($width, $height, $type, $attr) = getimagesize($file_name);
if ($width > $maxDim || $height > $maxDim) {
$target_filename = $file_name;
$ratio = $width/$height;
if($ratio > 1) {
$new_width = $maxDim;
$new_height = $maxDim/$ratio;
} else {
$new_width = $maxDim*$ratio;
$new_height = $maxDim;
}
$src = imagecreatefromstring(file_get_contents($file_name));
$dst = imagecreatetruecolor($new_width, $new_height);
imagecopyresampled($dst, $src, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
imagejpeg($dst, $target_filename); // adjust format as needed
}
}
请温和一点,我对这一切都有点新鲜感!
比500错误更详细的信息将有助于诊断。你可以检查你的PHP日志文件,看看实际的错误是什么? – Bert