###前提・実現したいこと
PHPで、画像を投稿してリサイズ・圧縮して保存、というアップローダーを作成しています。
###発生している問題・エラーメッセージ
画像を送信した際、画面が真っ白になってしまうことが多発したため、ログを確認したところ、メモリ不足が原因のようで、__imagecreatetruecolor__で発生しているようでした。もっと効率的・負荷がかからないやり方はあるでしょうか?
エラーログは以下になります
PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 12000 bytes)
###ソースコード
PHP
1<?php 2if (is_uploaded_file($_FILES["upfile"]["tmp_name"])) { 3 $image = imagecreatefromjpeg($_FILES["upfile"]["tmp_name"]); 4 $height = imagesy($image); 5 $width = imagesx($image); 6 $newHeight = $height/2; 7 $newWidth = $width/2; 8 $strFileDateTime = date( "Y年m月d日H時i分s秒" ); 9 $newImage = imagecreatetruecolor ( $newWidth, $newHeight ); 10 imagecopyresampled($newImage, $image, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height); 11 imagedestroy($image); 12 imagejpeg($newImage, "Image/$strFileDateTime.jpg", 60); 13 imagedestroy($newImage); 14 chmod("Image/$strFileDateTime.jpg", 0644); 15 echo $strFileDateTime.".jpgをアップロードしました。"; 16} 17?>
###補足情報(言語/FW/ツール等のバージョンなど)
メモリは128MBを割り当てられていて、レンタルサーバのため変更できません。PHPのバージョンは5.5.31です。
回答1件
あなたの回答
tips
プレビュー