画像をアップロードした際にリサイズするプログラムを作っています。
jpegとgif形式アップロードを考えています。jpegのアップロードは
うまく作動しますが、gifをアップロードしても画像はサーバにアップできるのですが、縮小処理がされていません。
その際に表示されるエラーは以下です。
Warning: imagecopyresampled(): supplied argument is not a valid Image resource in /***/***/***/***/***/uploader.php on line 82
Warning: imagegif(): supplied argument is not a valid Image resource in /***/***/***/***/***/uploader.php on line 83
■ソースは以下です。
フォーム部分
<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF'],ENT_QUOTES); ?>" method="post" enctype="multipart/form-data">
<table class="main1 table001" align="center" cellpadding="5" cellspacing="0">
<tr>
<th nowrap>画像ファイル1<br>(gif,jpgのみ)</th>
<td nowrap><input type="file" name="gra1" size="50"></td>
</tr>
<tr>
<td colspan="2"><input type="submit" name="confirm" value=" 確認画面へ " /><input type="submit" name="reset" value="リセット" /></td>
</tr>
</table>
</form>
縮小処理部分
//写真ファイルのアップロード処理
if(strlen($gra1) > 0 ) {
//アップロードされたテンポラリファイルの情報を取得します
$fileinfo = pathinfo($gra1);
//debug($fileinfo);
$fileext = strtoupper($fileinfo[extension]);
if ($gra1_size > $MAX_FILESIZE || $gra1_size == 0) {
//アップロードファイルのサイズ上限をチェックします
$error=1;
$error_mes .= "画像1のサイズが大きすぎます。".$FILESIZE_COM."以下にしてください。<br />";
}elseif ($fileext != "JPG" && $fileext != "GIF") {
//アップロードファイルの拡張子をチェックします
$error=1;
$error_mes .= "JPG、GIF形式以外の写真ファイルは登録できません。<br />";
}else {
$mictime = microtime();
if($fileext=="JPG"){$imagefile1 = substr($mictime, 11) . substr($mictime, 2, 6) . ".jpg";}else if($fileext=="GIF"){$imagefile1 = substr($mictime, 11) . substr($mictime, 2, 6) . ".gif";}
//テンポラリファイルを一時フォルダに名前を変えて移動します
if (move_uploaded_file($_FILES['gra1']['tmp_name'], "$H_PHOTOTMP$imagefile1")) {
//画像縮小処理
$sfn1="$H_PHOTOTMP$imagefile1";//読み込みファイル名
$dfn1="$H_PHOTOTMP$imagefile1";//書き出しファイル名
list($lw1,$lh1,$type1,$attr1) = getimagesize($sfn1);//画像情報取得
if($type1==2){//JPGならば処理
$sw1=$lw1*0.1;//サイズは縦横10%に
$sh1=$lh1*0.1;
$im_in1 = @imagecreatefromjpeg($sfn1); //元画像の読み込み
$im_out1 = @imagecreatetruecolor($sw1,$sh1); //縮小画像の作成
imagecopyresampled($im_out1,$im_in1,0,0,0,0,$sw1,$sh1,$lw1,$lh1);//縮小コピー
imagejpeg($im_out1,$dfn1);//ディスクに出力
//debug($dfn);
}else if($type1==1){//GIFならば処理
$sw1=$lw*0.1;//$lw1*0.1;//サイズは縦横10%に
$sh1=$lw*0.1;//$lh1*0.1;
$im_in1 = @imagecreatefromgif($sfn1); //元画像の読み込み
$im_out1 = @imagecreatetruecolor($sw1,$sh1); //縮小画像の作成
imagecopyresampled($im_out1,$im_in1,0,0,0,0,$sw1,$sh1,$lw1,$lh1);//縮小コピー
imagegif($im_out1,$dfn1);//ディスクに出力
//debug($dfn);
}
//画像縮小処理ここまで
}else{
$error=1;
$error_mes .= "写真ファイル1のアップロードに失敗しました。<br />";
}
}
}
になります。
ご教授のほど宜しくお願い致します。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
以下の部分の$lwという変数は突然でてきているのですが、どこかで定義されているのでしょうか。
$sw1=$lw*0.1;//$lw1*0.1; //サイズは縦横10%に
$sh1=$lw*0.1;//$lh1*0.1;
でなければ$sw1、$sh1は0となり以降のimagecreatetruecolorに失敗しているはずです。
imagecreatetruecolorの@を外して確認してみてください。
ご指摘ありがとうございます。
こっちの確認ミスでした。
$sw1=$lw*0.1;//$lw1*0.1; //サイズは縦横10%に
$sh1=$lw*0.1;//$lh1*0.1;
変数の入力ミスです
$lw→$lw1
修正したらちゃんと動きました。
ありがとうございます。
No.1
- 回答日時:
>supplied argument is not a valid Image resource
ということで、imagecreatefromgifが正常にGIF画像を生成できてないのではないでしょうか。
imagecreatefromgif関数の前に「@(エラー制御子)」が付加されているので、これをはずした場合に、何らかのエラーは出てきませんか?
また、一度アップロードするGIF画像も別のものに変更してから行ってみてはどうでしょう。
この回答への補足
ちなみに画像を変えてみても結果は同じです。
imagecreatefromgif関数の前の「@(エラー制御子)」をはずした場合も
同じエラー表示になりました。
これ以上無理なのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- PHP imageフォルダに、画像をリサイズして保存する時のファイル名を変更したい 1 2023/05/30 11:39
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- PHP $filePath = './user_img/' . $file['name'];? 1 2022/12/10 07:29
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- JavaScript アップロードファイルの種類によって処理を分岐させたいのですが書き方が分からずアドバイスお願いします 4 2023/06/17 19:12
- PHP どうして送信されないのでしょうか? 1 2022/12/09 05:23
- PHP PHPでユーザー情報を入力して簡易ログイン機能をつくってみたのですが 1 2023/05/29 08:51
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
アップロード画像数でCSSを分け...
-
【PHP】サーバー上で TIFFをJPE...
-
★PHP★画像アップロードの際に余...
-
PythonのTkinter詳しい方へ。画...
-
C#とJavaで、MP3タグの画像を表...
-
C# Excelファイルへの画像挿入。
-
透過PNGが透過されない!!
-
Illustratorで文字と画像を流し...
-
GDの画像変換でサーバーに負荷
-
PHP + MySQL で画像データ表示
-
エクセルでカレンダーマクロの...
-
PHPで半透明画像を作りたい
-
VBSの「MsgBox」について
-
imageフォルダに、画像をリサイ...
-
PostgreSQLのラージオブジェク...
-
<img src="http://x.y.com/cgi-...
-
VBAでJPGサイズ変更
-
PHPによる画像の生成による色の...
-
こちらはただの直列処理ですか?
-
フォントの色を変えるには?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBSの「MsgBox」について
-
拡張子php画像をjpg画像等に変...
-
透過PNGが透過されない!!
-
アップロード画像数でCSSを分け...
-
imageフォルダに、画像をリサイ...
-
VBAでJPGサイズ変更
-
Illustratorで文字と画像を流し...
-
VBAのコードを教えてください
-
C# Excelファイルへの画像挿入。
-
php,mysqlにて画像パス保存/表...
-
GDI+を使ったビット数とDPIの扱い
-
SQLiteに画像を格納したい
-
ListViewコントロールでサムネ...
-
★PHP?★画像を縦横比を変えずに...
-
ビットマップ画像を読み込むプ...
-
phpで画像がどうしても文字化け...
-
PHPで吐き出した画像にリンクを...
-
phpMyAdminに画像を保存できない
-
OpenGLで描いて画像ファイル出力
-
手作業で埋め込んだ、UserForm1...
おすすめ情報