0

通常のサイズの画像やファイルに最適なuploadscriptがあります。

    function uploadimage($name,$dir)
{
    if($name['error'] > 0){
    die('An error ocurred when uploading.');
    }

    if(!getimagesize($name['tmp_name'])){
        die('Please ensure you are uploading an image.');
    }

    // Check filetype
    if($name['type'] != 'image/png'){
        die('Unsupported filetype uploaded.');
    }

    // Check filesize
    if($name['size'] > 500000){
        die('File uploaded exceeds maximum upload size.');
    }

    // Check if the file exists
    if(file_exists($dir. $name['name'])){
        die('File with that name already exists.');
    }

    // Upload file
    if(!move_uploaded_file($name['tmp_name'], $dir. $name['name'])){
        die('Error uploading file - check destination is writeable.');
    }

    return $dir. $name['name'];
    die('File uploaded successfully.');
}

$nameは$_FILES['WHATEVER']で、$dirはdirです。さて、私はそれと一緒に.csvファイルをアップロードするためにそれの数行を変更しました。ここまでは順調ですね。小さな.csvファイルで動作しています。しかし、もっと大きなもの(20MB以上)を試してみると、投稿しても何も起こりません。php.iniでupload_max_filesizeとmemory_limitを確認しました。どちらも128Mです...誰かがバグを検索する場所を教えてくれますか?

4

7 に答える 7

3

最大アップロードサイズは、upload_max_filesizepost_max_sizeの2つのPHP構成オプションで制御されます。

ただし、アップロードの完了にかかる時間も考慮する必要があります。PHPスクリプトは通常30秒後にタイムアウトしますが、10MBのファイルを正常なブロードバンド接続にアップロードするには少なくとも3分かかります(アップロード速度は通常、ダウンロード速度の5倍遅いことに注意してください)。さらに、アップロードされた画像を操作または保存すると、スクリプトがタイムアウトする場合もあります。したがって、PHPのmax_input_timemax_execution_timeを300(秒で指定された5分)のようなものに設定する必要があります。

これらのオプションは、サーバーのphp.ini構成ファイルで設定できるため、すべてのアプリケーションに適用されます。または、Apacheを使用している場合は、アプリケーションの.htaccessファイルで設定を構成できます。

于 2012-11-19T11:10:52.047 に答える
2

も見てくださいpost_max_size

于 2012-11-19T11:07:32.297 に答える
0

php.iniファイルでこの設定を使用する必要があります

upload_max_filesize = 10M  //20m,30m etc..
post_max_size = 10M  //20m,30m etc..

それは10MBを与える必要はありません、それはあなたの要件に従って与えます。

これを試して。

于 2012-11-19T11:08:06.853 に答える
0

php.iniでpost_max_sizeを確認しましたか?

于 2012-11-19T11:08:22.263 に答える
0

php.iniファイルを変更する必要があります。最大アップロードサイズを制限します。php.iniファイルでこれを変更します

post_max_size = 8M
upload_max_filesize = 2M

:)

于 2012-11-19T11:12:24.520 に答える
0

PHPアップロードでは、リクエスト全体がメモリ内で機能する可能性があるため、数百メガバイトをアップロードするには、多くのメガバイト(およびそれ以上)を保存できるメモリ制限が必要になります。大きなファイルのアップロードを本当にサポートする必要がある場合は、Webサーバーがリクエストから一時ファイルを作成する方がよいでしょう。apacheの場合はmod_upload、nginxの場合はHttpUploadアドオンをご覧ください

于 2012-11-19T11:12:46.157 に答える
-1

PHPのini設定は、確認する必要があるものです。

于 2012-11-19T13:31:33.003 に答える