- 締切済み
スマホサイトでの画像をPOST
スマホサイトで画像アップロードのフォームを作成しています。 5つほど添付できるようにしています。 form.php <form action="./send.php" method="post" enctype="multipart/form-data" novalidate="novalidate"> 画像<br> <?php for($i = 1; $i <= 5; $i++) { echo '<input type="hidden" name="item_img_name[' .$i. ']" value="' .$_SESSION['item_img_name'][$i]. '">'."\n"; echo '<input type="file" name="item_img[' .$i. ']" id="item_img_' .$i. '" value=""><br>'."\n"; } ?> <input type="submit" value="送信"> </form> 以上の内容でフォームを作成しております。 問題なのが、サブミットした際send.phpに切り替わるのがかなり遅く大変困っています。 1つにつき2MGの画像サイズを早くPOSTさせる方法はありませんでしょうか。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- ONEONE
- ベストアンサー率48% (279/575)
2MBはでかいですね。 それをbase64に変換してDBに入れるのも結構重い処理なのではと思います。 その画像はアップしたサイズのままがいいのでしょうか? 圧縮してもよいのならクライアント側で圧縮するのが良いでしょう。 FILE APIが使える場合(IEだとIE10以上)に下記URLが使えます。 http://www.egashira.jp/2013/03/image-resize-before-upload
- yambejp
- ベストアンサー率51% (3827/7415)
ボトルネックがどこにあるかによります。 ・アップロードの回線が遅い ・send.phpのファイルの受け処理が遅い ・send.phpの受けた後の処理が遅い いくつかのパターンでテストプログラムを組んで問題のきりわけをしてみてください またセッションを利用しているようですが、ロジックの記載がないため どう作用しているかわからず、もしかしたらそのあたりが足を引っ張っている 可能性もあるかも。 そもそもsend.phpは自分自身なのか、別のプログラムなのか、 別のプログラムならそのプログラムの内容を記載しなければ適切な回答はできません。
- kosukejlampnet
- ベストアンサー率44% (126/282)
> 1つにつき2MGの画像サイズを早くPOSTさせる方法はありませんでしょうか。 通信環境の問題です。上りが高速のプロバイダに変更するとか、専用線を引くとか、インターネット回線をなんとかする以外に方法はありません。 この方法は自分の回線だけに当てはまる方法で、閲覧するユーザーにこれを強制することは出来ませんから、多くの制作者はアップロードするファイルの容量を制限したり、アップロード自体をシームレスに行うajaxを使ってストレス軽減の工夫をします。
補足
ご解答いただき有難う御座います。 >多くの制作者はアップロードするファイルの容量を制限したり、 ユーザーにファイルの容量を落とすことは考えておらず(手間を省くため)、 その場で写真をとって、その場でアップロードするといった仕組みにしています。 >アップロード自体をシームレスに行うajaxを使ってストレス軽減の工夫をします。 この方法を何度か試したのですが、それでもストレスがたまってしまうため、 方法を探しております。
補足
ご回答有難う御座います。 >またセッションを利用しているようですが、ロジックの記載がないため 申し訳ありません、こちらはたいしたものを書いておりませんので省いております。 >どう作用しているかわからず、もしかしたらそのあたりが足を引っ張っている可能性もあるかも。 無い状態で再度試してみます。 >そもそもsend.phpは自分自身なのか、別のプログラムなのか、 >別のプログラムならそのプログラムの内容を記載しなければ適切な回答はできません send.phpにはBASE64に変換し、mysqlに登録するプログラムが入っているため、別ファイルとなります。 ただ、send.phpのプログラムが実行する前に、dump、exitを 入れているいるため、現段階ではsend.phpのプログラムが理由では無いと判断しています。 また、度重なるご質問で大変申し訳ありませんが、画像を選択した際にリサイズしてくれるajaxなどのライブラリはございますでしょうか。