質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

1906閲覧

phpで画像のリサイズをしようとしたら、このようなエラーが出ました。

hatimaki

総合スコア27

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2017/09/13 13:43

編集2017/09/14 11:05

以下のソースのページ(up.html)から

<!DOCTYPE html> <html lang="ja"> <meta charset=utf-8> <body> <h3>画像のアップロード</h3> <form method="post" action="up.php" enctype="multipart/form-data" > <input type="file" name="a"><br> <input type="submit" value="アップロード"> </form> </body> </html>

画像をアップロードし、

<!DOCTYPE html> <html lang="ja"> <meta charset=utf-8> <body> <?php $a=$_FILES["a"]["name"]; $up=move_uploaded_file($_FILES["a"]["tmp_name"],"./".$a); var_dump($up); list($width,$height)=getimagesize($up); $nw=300; $nh=200; $moto=imagecreatefromjpeg($up); $saki=imagecreatetruecolor($nw,$nh); imagecopyresized($saki,$moto,0,0,0,0,$nw,$nh,$width,$height); imagejpeg($saki,$up); ?> </body> </html>

上記のソース(up.php)でリサイズするというものなのですが、実行するとプラウザ(up.php)には

bool(true) Warning: getimagesize(1): failed to open stream: No such file or directory in /home/websaka/websaka.php.xdomain.jp/public_html/2017_9_13/up.php on line 10 Warning: imagecreatefromjpeg(1): failed to open stream: No such file or directory in /home/websaka/websaka.php.xdomain.jp/public_html/2017_9_13/up.php on line 15 Warning: imagecopyresized() expects parameter 2 to be resource, boolean given in /home/websaka/websaka.php.xdomain.jp/public_html/2017_9_13/up.php on line 19 Warning: imagejpeg(): Invalid 2nd parameter, it must a filename or a stream in /home/websaka/websaka.php.xdomain.jp/public_html/2017_9_13/up.php on line 21

という表示がされます。

原因がわからず、困っています。

アドバイスをお願いいます。

ちなみにこれがプラウザ(up.php)の「ページのソースを表示」で表示したものです。

<!DOCTYPE html> <html lang="ja"> <meta charset=utf-8> <body> bool(true) <br /> <b>Warning</b>: getimagesize(1): failed to open stream: No such file or directory in <b>/home/websaka/websaka.php.xdomain.jp/public_html/2017_9_13/up.php</b> on line <b>10</b><br /> <br /> <b>Warning</b>: imagecreatefromjpeg(1): failed to open stream: No such file or directory in <b>/home/websaka/websaka.php.xdomain.jp/public_html/2017_9_13/up.php</b> on line <b>15</b><br /> <br /> <b>Warning</b>: imagecopyresized() expects parameter 2 to be resource, boolean given in <b>/home/websaka/websaka.php.xdomain.jp/public_html/2017_9_13/up.php</b> on line <b>19</b><br /> <br /> <b>Warning</b>: imagejpeg(): Invalid 2nd parameter, it must a filename or a stream in <b>/home/websaka/websaka.php.xdomain.jp/public_html/2017_9_13/up.php</b> on line <b>21</b><br /> </body> </html>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

このメッセージは、getimagesize()でファイルを開けないというメッセージです。getimagesize(1)なので、ファイル名が「1」となっています。

Warning: getimagesize(1): failed to open stream: No such file or directory ....

move_uploaded_file()の戻り値はTRUE|FALSEですので$up = trueつまり「$up = 1」となってしまっていることが原因ではないでしょうか?

getimagesize(ファイル名)ですので記のようにしてみます。

php

1$up = $_FILES["a"]["name"]; 2$ret = move_uploaded_file($_FILES["a"]["tmp_name"],"./".$up); 3var_dump($ret); 4 5list(...) = getimagesize($up);

なお、セキュリティのことや、エラー処理は一切考えていないので、上記コードを一般公開されたサーバーで使用はしないようにしてください。

投稿2017/09/13 16:30

Tomak

総合スコア1652

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hatimaki

2017/09/14 10:12 編集

Tomak様 修正しましたら今度は文字化けが出てきてしまいました。アドバイスをお願いします。
hatimaki

2017/09/14 11:08

Tomak様、文字化けの件は解決いたしました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問