あるPHP技術書籍で掲載のPHPファイル・アップロードの例を試したところ、アップロードするファイル・サイズは、小さいな(数KB)場合が成功、より大きな場合(例えば40KB~)が失敗!何故失敗なのかよく分かりません。ファイル種類には関係なさそうです。
詳しい方に教えて頂ければ助かります。
※ ご参考 -
1. 具体的なHTML&PHPコードは、次の通りです。
2. 利用環境: 最新版XAMPP、Windows 7、XAMPPデフォルト・ルートをD:のある
フォルダーに変更。D:に十分空き領域があると確認済み(数十GB)。
=====HTML=====================
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>fupload</title>
</head>
<body>
<h3>ファイルアップロード</h3>
<form method="POST" action="fupload.php" enctype="multipart/form-data">
<!-- MAX_FILE_SIZE は、必ず "file" input フィールドより前になければなりません -->
<input type="hidden" name="MAX_FILE_SIZE" value="100000" />
<!-- input 要素の名前が $_FILES 配列での名前となります -->
<input name="userfile" type="file" size="70"/>
<input type="submit" value="アップロード" />
</form>
</body>
</html>
=====PHP--=====================
<?php
$uploaddir = './up/file/';
$uploadfile = basename($_FILES['userfile']['name']);
echo '<pre>';
//if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploaddir.$uploadfile)) {
echo "ファイルアップロードに成功しました。\n";
} else {
echo "ファイルアップロードは不成功です。\n";
}
echo '<pre>';
?>
=====PHP関連設定(php.ini)========-==
;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;
; Whether to allow HTTP file uploads.
; http://php.net/file-uploads
file_uploads=On
; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
; http://php.net/upload-tmp-dir
upload_tmp_dir="C:\xampp\tmp"
; Maximum allowed size for uploaded files.
; http://php.net/upload-max-filesize
upload_max_filesize=2M
; Maximum number of files that can be uploaded via a single request
max_file_uploads=20
No.1ベストアンサー
- 回答日時:
php.iniのpost_max_sizeを設定するとか
httpd.confのLimitRequestBodyを設定してみては?
それにしても40Kくらいで引っかかることはないと思いますが
この回答への補足
皆さん御回答頂き誠に有難うございます!
ご指摘に対して、一々試しましたが、残念ながらまだ駄目です:
php.ini:
post_max_size = 8M (元々の設定で触らない)
httpd.conf:
LimitRequestBody 102400 のように追加
C:ドライブの総空き容量は、13.9GB。
7KB, 19KB, 29KB, 30KB, 39KBのファイルサイズを試したところ、30KBからアップロードが駄目になり始めちゃいました!
何か新しい手掛かりを気付き、教えて頂ければ有り難いです。
皆さん有難うございました。全て回答は同等に役立ったが、一番早い回答をベストアンサーに選ばせて頂きました。
自分で更に色んな模索しながら、問題を解消させました - 「解決」より、「解消」というのは、究極的な原因がまだ分かっておらず、但し、何らかの変更により、問題を消させて思う通りサイズのファイルをアップロードすることが出来るようになりました - 方法はApacheデフォルトのフォルダー・ルートを変えること。
残す不思議の疑問点 -
(1)上記「問題解消策」の前、アップロードは、何故、小さいなファイル
ならOK、一定サイズ(30KB)以上なら駄目だのか。要は一貫性が
ない点で不思議。通常は駄目だったら、全て駄目なはずのに。
(2)上記「問題解消策」というのは、Apacheルートフォルダー変更だけ
で、何故そうすることで問題を解消させることが出来るのか、やはり
究極的な理由が分かっていません。
No.3
- 回答日時:
> XAMPPデフォルト・ルートをD:のあるフォルダーに変更。
D:に十分空き領域があると確認済み(数十GB)。ということだけど、
php.iniで
> upload_tmp_dir="C:\xampp\tmp"
と、一時ファイル置き場をC:ドライブにしてるんですね。
ということは、C:ドライブが 不足しているということはないですか?
この回答への補足
皆さん御回答頂き誠に有難うございます!
ご指摘に対して、一々試しましたが、残念ながらまだ駄目です:
php.ini:
post_max_size = 8M (元々の設定で触らない)
memory_limit=128M (元々の設定で触らない)
httpd.conf:
LimitRequestBody 102400 のように追加
C:ドライブの総空き容量は、13.9GB。
7KB, 19KB, 29KB, 30KB, 39KBのファイルサイズを試したところ、30KBからアップロードが駄目になり始めちゃいました!
何か新しい手掛かりを気付き、教えて頂ければ有り難いです。
No.2
- 回答日時:
><input type="hidden" name="MAX_FILE_SIZE" value="100000" />
ここで100000バイトと制限していますが、それ以下でもダメなんですかね?
>upload_max_filesize=2M
post_max_sizeとmemory_limitはどうなっていますか(さすがにmemory_limitが数十KBはあり得ないでしょうけど)。
なおサーバ側で保存するときに、$_FILES['userfile']['name'] を使うべきではありません(不正なファイル名を送信される可能性があります)。
この回答への補足
皆さん御回答頂き誠に有難うございます!
ご指摘に対して、一々試しましたが、残念ながらまだ駄目です:
php.ini:
post_max_size = 8M (元々の設定で触らない)
memory_limit=128M (元々の設定で触らない)
httpd.conf:
LimitRequestBody 102400 のように追加
C:ドライブの総空き容量は、13.9GB。
7KB, 19KB, 29KB, 30KB, 39KBのファイルサイズを試したところ、30KBからアップロードが駄目になり始めちゃいました!
何か新しい手掛かりを気付き、教えて頂ければ有り難いです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- PHP PHPでユーザー情報を入力して簡易ログイン機能をつくってみたのですが 1 2023/05/29 08:51
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- PHP php ログイン 1 2022/11/01 00:24
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
onedrive にexcelファイルをア...
-
youtubeに音声のみのmp4ファイ...
-
PHP_アップロード
-
BASP21のFTPで日本語ファイル名...
-
pixivのイラスト投稿の仕方を教...
-
Dreamweaver ドリームウィーバ...
-
ファイルのアップロード
-
unlinkでどうしてもファイルが...
-
one drive のアップロード失敗...
-
ファイルアップロードしたもの...
-
FTPClientで転送結果(OKかFAIL)
-
VBSの「MsgBox」について
-
こちらはただの直列処理ですか?
-
複数ファイルを連続でダウンロード
-
パースエラーとは?
-
リンク先を隠す方法はないでし...
-
拡張子php画像をjpg画像等に変...
-
図に示す階層構造で,現在のデ...
-
C# Excelファイルへの画像挿入。
-
PHPとCSVで簡易データベースな...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
onedrive にexcelファイルをア...
-
ファイルアップロードの上限を...
-
youtubeに音声のみのmp4ファイ...
-
one drive のアップロード失敗...
-
FTPClientで転送結果(OKかFAIL)
-
VBでクラウドストレージにア...
-
ftpでアップロードが出来ない
-
アップロードできるファイルサ...
-
ファイルをGET送信でアップロー...
-
FTP接続の例外処理
-
「クラウドにアップロード」」...
-
PHP 画像アップロード 重複防止
-
aws cloud9というものを使って...
-
ファイルサイズがpost_max_size...
-
ファイルアップロードしたもの...
-
csvファイルをMySQLにインポー...
-
全角ファイル名をアップロード...
-
ファイルのアップロードで、フ...
-
携帯からファイルアップロード...
-
SmartyでHTMLソースの変更が反...
おすすめ情報