問題: 画像の読み込みが遅すぎる
P粉676821490
2023-08-17 22:40:08
<p>Html、Css、Js、Php を使用して、Craiglist に似た Web サイトを作成しました。
ユーザーが 1mb を超える画像をクリックしてアップロードすると、ページが非常に遅くなるか、失敗します (503 エラー)。 100kb以下の画像であれば問題ありません。 </p>
<ol>
<li>phpページにtype=file inputタグとpreview imgタグを持つフォームがあります。 > ここでは問題ありません。 </li>
<li>ユーザーが送信ボタンをクリックすると、フォームは入力タグの値をアップロード コードを含む別の PHP ページに渡します。 </li>
</ol>
<p>質問: サーバーにアップロードする前に画像を拡大縮小する最良の方法は何ですか?
Craigslist と比較すると、私のサイトは非常に遅いか、画像のアップロードに失敗します。
アップロードを高速化するにはどうすればよいですか? </p>
<pre class="brush:php;toolbar:false;">https://www.mimarketa.com/mmMain/mmEnglish/mmPostAd.php?country=US&county=Lewis&state=WA&adCity=All_Cities& ;category=ALL</pre>
<p>ここと Google で答えを探してみました。 </p>
<p>PHP ページ 1: ファイル タグと画像プレビュー タグを入力します。 JS は描画メソッドを介してスケーリングします。 </p>
<p>PHP ページ 2 のコード:</p>
<pre class="brush:php;toolbar:false;">$upload_dir = "mmAdPics/";
$file1 = $upload_dir . rand() . ".png";
$picUrl1='https://www.mimarketa.com/mmMain/mmEnglish/'.$file1;
$img1 = $_POST['hidden_data1'];
$img1 = str_replace('data:image/png;base64,', '', $img1);
$img1 = str_replace(' ', ' ', $img1);
$data1 = Base64_decode($img1);
$success = file_put_contents($file1, $data1);
print $success ? $file1 : 'ファイル 1 を保存できません。 ';</pre>
<p><br /></p>
確認してください: https://www.php.net/manual/en/book.imagick.php
具体的には、画像のサイズを変更します。さらに、503 エラーはサーバーのタイムアウトが原因である可能性が高くなります。サーバー側でタイムアウトを増やしたり、クライアント側でアップロードされるファイルのサイズを制限したりできます。