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

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

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

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

アップロード

アップロードは特定のファイルをウェブサーバに送るプロセスのことを指します。

Q&A

解決済

2回答

1318閲覧

PHPで画像が10KB程度までしかアップロード出来ない。

Takekazu-Ban

総合スコア1

PHP

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

アップロード

アップロードは特定のファイルをウェブサーバに送るプロセスのことを指します。

0グッド

0クリップ

投稿2021/11/22 14:27

前提・実現したいこと

ローカル環境で、画像をアップロードできるアプリを作っているのですが、10KBまでのファイルしかアップロード出来ません。
(10KB以下ならアップロード出来るが、10KB以上なら出来ない。)
解決策などわかる方が居りましたらご教授お願いします。

発生している問題・エラーメッセージ

500 Internal Server Error nginx/1.19.2

該当のソースコード

/* 画像アップロードページ抜粋 */ <form action="product_add_check.php" method="post" enctype="multipart/form-data">     <label for="product_img">画像</label><br>     <input type="file" name="image">     <input type="submit" value="OK"> </form> /* 画像チェックページ抜粋 */ $product_info = sanitize($_POST); // 受取った値にXSS対策を行う $product_img = $_FILES["image"]; if($product_img["size"] > 0) { // 商品画像サイズが0B以上の場合     move_uploaded_file($product_img["tmp_name"],"../product/img/".$product_img["name"]);     echo "<div class='check-img'>";     echo "<img src='../product/img/".$product_img['name']."' width='100%' height='100%'><br>";     echo "</div>"; } else { // 商品画像が無い場合     echo "<div class='check-img'>";     echo "<img src='../product/img/no_image.png' width='100%' height='100%'><br>";     $product_img['name'] = "no_image.png";     echo "</div>"; } echo "<form action='product_add_done.php' method='post'>"; echo "<input type='hidden' name='product_img' value='".$product_img['name']."'>"; echo "<input type='submit' value='OK'>"; echo "</form>";

試したこと

「php.ini」のfile_uploads,memory_limit ,post_max_size ,upload_max_filesizeの確認と変更

補足情報(FW/ツールのバージョンなど)

【ローカルサーバー】
種類:MAMP
Web server:Nginx
PHP Version :7.4.12

【データベース】
種類:phpAdmin
画像保存カラム:product_img[varchar(30)]

【php.iniの中身】
file_uploads: On
memory_limit :200M
post_max_size :200M
upload_max_filesize  :128M

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

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

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

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

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

m.ts10806

2021/11/22 20:12

phpAdminというデータベースはないです。 phpMyAdminのことなら、MySQL(もしくはMariaDB)を操作するツールの1つに過ぎません。 あと、カラムの情報はともかく、どこにもDBに保存しているコードがないような。 蛇足ですが >$product_info = sanitize($_POST); // 受取った値にXSS対策を行う 間違いです。受け取った情報を受け取る時ではなく、画面表示処理のところに表示する情報にのみ行うのがXSS対策です。
Takekazu-Ban

2021/11/24 12:14

ご回答ありがとうございます! すいません、こちらでは書いていないのですが'product_add_done.php'でDBに保存しております。 >間違いです。受け取った情報を受け取る時ではなく、画面表示処理のところに表示する情報にのみ行うのがXSS対策です。 なるほど!勉強になります!
guest

回答2

0

自己解決

MAMPのポートの8888を利用していましたが、80に変更することによってアップロード出来るようになりました。
どうやら、8888の方には、権限が無かったようです。

投稿2021/11/25 13:17

Takekazu-Ban

総合スコア1

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

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

0

phpはあまり知らないのですが,家用にnextcloudサーバーを立てた時にnginx側の設定で,
client_max_body_sizeを大きめの値にとるか,0に設定(無制限)するとかしたような気がします。

そのあたりが関係しているかもしれません。

投稿2021/11/22 18:47

ujimushi_sradjp

総合スコア2152

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問