0

ユーザーが広告ごとに複数の写真をアップロードできる広告サイトを構築しています。これを機能させるにはどうすればよいですか? 私はphpが初めてです

<?php echo $error_msg; ?>

<?php
    include_once "connection.php";

    if(isset($_FILES['files'])){

    $errors= array();

    foreach($_FILES['files']['tmp_name'] as $key => $tmp_name ){
        $file_name = $key.$_FILES['files']['name'][$key];
        $file_size =$_FILES['files']['size'][$key];
        $file_tmp =$_FILES['files']['tmp_name'][$key];
        $file_type=$_FILES['files']['type'][$key];  

        if($file_size > 2097152){
            $errors[]='File size must be less than 2 MB';
        }

        $sql = mysql_query("INSERT INTO upload_data (`postid`,`file_name`,`file_size`,`file_type`) VALUES('$postid','$file_name','$file_size','$file_type')")or die (mysql_error());

        $desired_dir="uploads";
        if(empty($errors)==true){
            if(is_dir($desired_dir)==false){
                mkdir("$desired_dir", 0700);        
            }
            if(is_dir("$desired_dir/".$file_name)==false){
                move_uploaded_file($file_tmp,"$desired_dir/".$file_name);
            }else{                                  
                $new_dir="$desired_dir/".$file_name.time();
                 rename($file_tmp,$new_dir);                
            }
            mysql_query($sql);          
        }else{
                print_r($errors);
        }
    }
    if(empty($error)){
    echo "Success";
        }
    }
?>
4

1 に答える 1

0

複数のファイルをアップロードしようとしたときに発生する最も一般的な問題は、php.ini ファイルの upload_max_filesize と max_post_size です。

一連の非常に小さな画像のアップロードに問題がない場合は、これが問題になります。

この質問: php file uploads' sizeでは、この問題について効果的に説明しています。

$_FILES['files']['error'] をエコーすることも検討する必要があります。これは、多くの場合有益です。phpマニュアルはコードを説明しています。

HTML FORM 要素にも正しい呼び出しが含まれていることを確認することを忘れないでください。

<form method='POST' enctype='multipart/form-data' action='myfile.php'>

HTML フォームでも max_file_size を指定していないことを確認してください。

大きなファイルのアップロードを禁止するのではなく、スクリプト内の大きすぎる画像のサイズを変更することをお勧めします。これは、ユーザーを大幅に支援します。

これが役立つことを願っています。

于 2013-06-07T08:55:21.793 に答える