1

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;
    }
}

この問題を解決するにはどうすればよいですか?

4

2 に答える 2

0
$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 パーツ内から表示されていますか? どちらも特定の状況で同じメッセージを表示するため、最初にどこに表示されるかを調べる必要があります

于 2013-01-15T19:27:35.007 に答える
0

調整する必要がある設定は 3 つあります。

upload_max_filesize
memory_limit
post_max_size 

すべてphp.iniに

于 2013-01-15T19:29:07.713 に答える