0

こんにちは、私は HTML、PHP、MySQL などにかなり慣れていません$_FILES。約 1.5 メガバイトの画像を 8 つアップロードしようとするとコードが機能しませんが、約 60 キロバイトの画像を 10 枚アップロードするとコードは正常に機能するためです。これが私のコードであり、それについての批判/コメントを自由に書いてください:

</head>
<body>
<form action="test.php" method="POST" enctype="multipart/form-data" >
    <input type="file" name="image[]" multiple="multiple">
    <input type="submit" value="upload">
</form>    

<?php

include 'connect.php';

if(!empty($_FILES['image']['tmp_name'])){

    $allowed = array('jpg', 'gif', 'png', 'jpeg');
    $count = 0;
    foreach($_FILES['image']['name'] as $key => $name){

    $image_name = $name;
    $tmp = explode('.', $image_name);

    $image_extn = strtolower(end($tmp)); //can only reference file
    $image_temp = $_FILES['image']['tmp_name'][$count];
    $count = $count +1;

    if(in_array($image_extn, $allowed) === true){

        $image_path = 'images/' . md5($image_name) . '.' . $image_extn;

        move_uploaded_file($image_temp, $image_path);

        mysql_query("INSERT INTO store VALUES ('', '$image_name', '$image_path')") or die(mysql_error());

        $lastid = mysql_insert_id();
        $image_link = mysql_query("SELECT * FROM store WHERE id = $lastid");
        $image_link = mysql_fetch_assoc($image_link);
        $image_link = $image_link['image'];
        $uploaded[] = $image_link;

        }
        else{
            echo 'Incorrect file type. Allowed: ';
            echo implode(', ', $allowed);
            }
        }
    }        

    if(!empty($uploaded)){
        foreach($uploaded as  $new){
            echo "<a href = $new>$new</a><p></p>";

        }
    }
else{
        echo "Please select an image.";
    }
?>  
</body>
</html>
4

4 に答える 4

3

ファイルの配列をアップロードしようとしています。デフォルトで に設定されているmax_file_uploadsの制限により、20 個を超えるファイルをアップロードすることはできません。php.ini20

したがって、20 個を超えるファイルをアップロードするには、この制限を増やす必要があります。

: max_file_uploadsphp.ini の外では変更できません。PHP の「バグ」 #50684を参照してください。

于 2013-08-15T13:10:12.073 に答える
2

php.ini で変更する設定は次のとおりです。

post_max_size この設定は、HTTP 投稿のサイズを制御し、upload_max_filesize 設定よりも大きく設定する必要があります。

upload_max_filesize この値は、アップロード ファイルの最大サイズを設定します。

これらの変更を行った後は、忘れずに Web サーバーを再起動してください。

参照:

于 2012-09-14T19:19:10.173 に答える
0

php.ini のいくつかの設定が原因である可能性があります。memory_limit、post_max_size、upload_max_filesize を調べてください。タイムアウトしている可能性もあります。具体的に調べる最良の方法は、error_reporting(E_ALL);ini_set('display_errors','1');

于 2012-09-14T19:19:19.603 に答える
0

php.ini にはpost_max_sizeandupload_max_filesizeディレクティブがあります。

http://www.php.net/manual/en/features.file-upload.post-method.phpMAX_FILE_SIZEに従って、フォーム内に非表示の入力 も定義する必要があります。

于 2012-09-14T19:22:13.933 に答える