【问题标题】:Not able to check file size while uploading multiple files in PHP在 PHP 中上传多个文件时无法检查文件大小
【发布时间】:2017-05-14 13:44:47
【问题描述】:

我正在尝试检查多个文件上传的文件大小限制。每次我收到 抱歉,您上传的文件太大,最大文件大小为 10 MB。 无法找出错误。

在不提供文件限制的情况下,文件上传工作正常。我还在 PHP.ini 文件中进行了必要的更改,例如 POST_MAX_SIZE 和 MAX_FILE_SIZE,但响应仍然相同。

foreach($_FILES['upload_slider']['tmp_name'] as $key => $tmp_name){
                #file upload size - file size 10MB
                $fileSize = $_FILES['upload_slider']['size'][$key];
                if ($fileSize <= 10485760) #10 MB 
                {

                    $_SESSION['upload_warning'] = "Sorry, your file is too large upload, maximum file size is 10 MB.";
                    header("location:../slider.php");
                    die;            
                }


            else{
                $file_name = strtolower($_FILES['upload_slider']['name'][$key]);
                $file_tmp = $_FILES['upload_slider']['tmp_name'][$key];
                $ext = pathinfo($file_name, PATHINFO_EXTENSION);
                $new_filename = rand().".".$ext;
                if(in_array($ext,$extension))
                {
                    move_uploaded_file($file_tmp= $_FILES['upload_slider']['tmp_name'][$key],"$album_dir$new_filename");
                    # insert record in database

                    $values = [
                    'slider_id' =>$slider_id,
                    'image_name' => $new_filename,
                    //'album_name' => $album_title,
                    'image_path' => $db_album_dir.$new_filename,
                    'uploaded_date' => date("Y/m/d h:i:s ")
                    ];
                    $res = $abc->insert($tablename,$values);                
                    header("location:../slider.php");
                }
                else
                {
                    $_SESSION['upload_warning'] = "Please upload appropriate file type extension i.e. <b> jpg, jpeg, png , gif. </b> ";
                    header("location:../slider.php");
                    die;
                }
            }

        }//EOF FROEACH

【问题讨论】:

    标签: php file-upload


    【解决方案1】:

    您是否尝试将每个文件限制为 10Mb?因为现在你的 if 语句正好相反:

    if ($fileSize <= 10485760){ //if the file is less or equal to 10mb
    //return error
    }
    else{ //else if the file is larger than 10mb
    //proceed with uploading
    }
    

    所以你应该这样尝试:

    if($fileSize >= 10485760){ //return error
    }
    else { //upload file
    }
    

    【讨论】:

    • 这是什么运算符 => ?
    • 对不起,我弄错了,本意是写&gt;=(大于或等于),但写了=&gt;,这是关联数组的分隔符。立即在帖子中修复。关联数组如下所示:$user_list = array( 'name' =&gt; 'john', 'surname' =&gt; 'white' ); 不是索引(数字 0-n),而是将“键”(在本例中为名称,姓氏)分配给值(约翰,怀特)。
    猜你喜欢
    • 2017-01-30
    • 1970-01-01
    • 2011-08-20
    • 1970-01-01
    • 2014-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多