簡體   English   中英

上載大於5MB的文件

[英]Upload file larger than 5MB

我試圖創建一個應用程序,該應用程序允許我上傳大於5 MB的文件,但始終會收到一條錯誤消息,指出文件太大。 我修改了php.ini upload_max_filesize和post_max_size並將其設置為1GB,但是沒有用。

這是我的代碼:

if(is_uploaded_file($_FILES['pdf']['tmp_name'])&&($_FILES['pdf']['error'] == UPLOAD_ERR_OK)){
    $file = $_FILES['pdf'];
    $size = round($file['size']/10485760);
    if($size > 10485760){
        echo 'The uploaded file was to large.';
    }

    if(($file['type'] != 'application/pdf') && (substr($file['name'], -4) !='.pdf')){
        echo 'The uploaded file was not a PDF.';
    }

    if(!array_key_exists('pdf', $add_pdf_errors)){
        $tmp_name = sha1($file['name'].uniqid('', TRUE));
        $dest = '../pdfs/'.$tmp_name.'_tmp';

        if(move_uploaded_file($file['tmp_name'], $dest)){
            $_SESSION['pdf']['tmp_name'] = $tmp_name;
            $_SESSION['pdf']['size'] = $size;
            $_SESSION['pdf']['file_name'] = $file['name'];
            echo '<h4>The file has been uploaded!</h4>';
        }else{
            trigger_error('The file coul not be moved.');
            unlink($file['tmp_name']);
        }
    }
}else{
    switch ($_FILES['pdf']['error']){
        case 1:
        case 2:
            echo 'The uploaded file was to large.';
            break;
        case 3:
            echo 'The file was only partially uploaded.';
            break;
        case 6:
        case 7:
        case 8:
            echo 'The file could not be uploaded to a system error.';
            break;
        case 4:
        default:
            echo 'No file was uploaded.';
            break;
    }
}

我該如何解決這個問題?

$size = round($file['size']/10485760);
if($size > 10485760){
    echo 'The uploaded file was to large.';
}

此邏輯似乎不正確。 這樣的比較是不准確的。 嘗試

$size = $file['size'];
if($size > 10485760){
    echo 'The uploaded file was to large.';
}

另外,請檢查“上傳的文件是否過大”。 是從您的IF或ELSE部件中顯示? 因為兩者在特定情況下會顯示相同的消息,所以首先我們必須找出它在哪里顯示

您需要調整3個設置:

upload_max_filesize
memory_limit
post_max_size 

全部在php.ini中

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM