public function render($request, Exception $exception)
{
if ($exception instanceof \Symfony\Component\HttpFoundation\File\Exception\FileException) {
// create a validator and validate to throw a new ValidationException
return Validator::make($request->all(), [
'your_file_input' => 'required|file|size:5000',
])->validate();
}
return parent::render($request, $exception);
}
$('#myFile').bind('change', function() {
let filesize = this.files[0].size // On older browsers this can return NULL.
let filesizeMB = (filesize / (1024*1024)).toFixed(2);
if(filesizeMB
$('#upFile').bind('change', function() {
//this.files[0].size gets the size of your file and then you can validate accourdingly...
alert(this.files[0].size);
});
PHPの制限を変更して、より大きなファイルを許可することに興味がないようです。 最大アップロードを5MBにして、それが終わったら適切な応答を返すように思えます。
app / Exceptions / Handler.php
の例外ハンドラー内でFileException
例外を処理できます。 「レンダー」メソッドを更新して、必要なコードを追加します。 たとえば、検証例外を返す場合は、「FileException」例外の例外ハンドラー内で検証を処理する必要があります。これはテストされていませんが、一般的なアイデアを与えるはずです。
JavaScriptを介してクライアント側の検証を行うこともできます。これにより、大きすぎるファイルが実際にサーバーに送信されることはありませんが、JavaScriptがクライアントによって無効にされたり削除されたりする可能性があるため、サーバー側の処理を適切に設定することをお勧めします。
クライアント側の検証では、ファイル入力の「変更」イベントにイベントハンドラーを添付すると、「this.files [0] .size」を使用してファイルサイズを確認し、その後追加のアクションを実行できます(フォームを無効にし、アップロードされたファイルを削除するなど.)。
post_max_size および upload_max_filesize は、php.iniファイルOR .htaccessファイルOR httpd.confファイルを構成するように設定できるディレクティブです。
php.iniの例:。
。htaccessの例:。
httpd.confの例:。
をコントローラの中に入れてください。
とphp.iniに記述します。
php.iniのパラメーターの下に変更します。! 私のために。
Laravelの検証ルールを使用することができます。
バリデーションとその使い方については、こちらをご覧ください。
これはjQuery / javascriptで行うことができます(これは、ファイルがアップロードされないことを意味しますが、PHPスクリプトに送信される前にファイルを確認できます)。
ララベルでは、このように検証できます-。
値はキロバイトです。 つまり. max:10240 = max 10 MB . そして、冗談で-。
< input type = "file" id = "upFile" />。入力フィールドのonchangeイベントにバインドします。
これがあなたを助けることを願っています。
max バリデーターでファイルのサイズを確認できます。
5MBの制限はウェブホストによって設定されており、おそらく変更することはできません。
制限を超えるサイズのファイルをアップロードするには、分割してアップロードする必要があります。
これを行うlaravelのパッケージは、https://github.com/jildertmiedema/laravel-plupload。