0

PHPでファイルアップロードを作成しようとしています。しかし、$_FILES['photo']['name']何も返しません。それから私はたくさんグーグルして、その方法について調べましたvar_dump。実行すると。次の配列を返します。

array (size=5)
  'name' => string '' (length=0)
  'type' => string '' (length=0)
  'tmp_name' => string '' (length=0)
  'error' => int 4
  'size' => int 0

name、type、および tmp_name は空白です。

これが完全なコードです。(PHP)

if ($_SERVER['REQUEST_METHOD'] === 'POST') {

     var_dump($_FILES['photo']);
}

HTML

<form class="bs-docs-example" action="upload.php" method="post" enctype="multipart/form-data">
        <fieldset>
            <legend>File Upload</legend>

            <label><input type="file" name="photo" size="25" /></label>
            <label><input type="file" name="photo" size="25" /></label>
            <label><input type="file" name="photo" size="25" /></label>

            <label><button type="submit" name="add_video" value="Submit" class="btn">Submit</button></label>

        </fieldset>
</form>

助言がありますか。前もって感謝します。

4

3 に答える 3

4

同じ を持つフォーム要素が複数ある場合name、それらは互いにオーバーライドします。PHP は、おそらく空白であるその名前の最後の入力のみを尊重し、以前に入力したものを無視しています。

複数のファイルのアップロードに関する PHP マニュアルを見ることができますが[]、最終的には、PHP にそれらすべてを「見て」もらい、それらを配列に整理させたい場合は、入力名の最後にある必要があります。それ以外の場合は、入力を 1 つだけにするか、それぞれに異なる名前を選択してください。

于 2013-01-02T05:44:08.087 に答える
2
        <label><input type="file" name="photo" size="25" /></label>
        <label><input type="file" name="photo" size="25" /></label>
        <label><input type="file" name="photo" size="25" /></label>

同じ名前の 3 つの要素。だからこそきっと

于 2013-01-02T05:40:58.397 に答える
1

試す

 var_dump($_POST);

投稿されたものがあるかどうかを確認するには、同じ名前の要素が 3 つあることは問題です。

<label><input type="file" name="photo1" size="25" /></label>
<label><input type="file" name="photo2" size="25" /></label>
<label><input type="file" name="photo3" size="25" /></label>
于 2013-01-02T05:43:11.003 に答える