誰かが私を助けてください、ほとんどすべての髪が今行っている可能性があります。大きな画像をサイトにアップロードしようとすると問題が発生しました。私はこれを修正して以来、すべてが正常に動作しているようだ。私は10Mb + JPEGファイルでスクリプトをテストしたが、すべてが完璧に見える。しかし、私はちょうどsomeonesの携帯電話(4.9Mb)からJPEGをアップロードしようとしたが、私は500エラーが発生します。 PSの画像を見ると、幅は1054px、高さは1874px、高さは72dpiです。なぜこれが問題なのか、どのように回避するのか、誰でも助けてくれますか?画像を小さくすると(700ピクセル幅)、画像は正常にアップロードされますか?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