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。

如果您上传一系列非常小的图像没有问题,那么这将是您的问题。

This question: 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 回答