programing

Larabel에서 최대 파일 크기를 검증하는 방법

iphone6s 2023. 3. 3. 17:08
반응형

Larabel에서 최대 파일 크기를 검증하는 방법

Larabel에서 최대 파일 크기 500kb를 검증하려고 합니다.

$validator = Validator::make($request->all(), [
    'file' => 'size:500',
]);

그러나 이 파일에는 정확히 500kb의 크기가 있어야 한다고 나와 있습니다.500kb보다 클 때 오류를 반환하도록 이 규칙을 편집하려면 어떻게 해야 합니까?

이거 해봤어요.

'file' => 'size:>=500'
'file'  => 'size:max:500'

이 문서에서는 이에 대해 아무것도 설명하지 않았습니다.

크기: 값

검증 중인 필드의 크기가 지정된 값과 일치해야 합니다.문자열 데이터의 경우 값은 문자 수에 해당합니다.숫자 데이터의 경우 값은 지정된 정수 값에 해당합니다.파일의 경우 크기는 파일 크기(KB)에 해당합니다.

설명서에 따르면:

$validator = Validator::make($request->all(), [
    'file' => 'max:500000',
]);

값은 킬로바이트 단위입니다.예.max:10240= 최대 10MB.

편집: 경고!이 답변은 XAMPP OsX 환경에서 작동했지만 AWS EC2에 배포했을 때 업로드 시도를 막지 못했습니다.

나는 이 답이 틀렸기 때문에 삭제하고 싶었지만, 대신 무엇이 나의 발목을 잡았는지 설명하겠다.

내 파일 업로드 필드의 이름은 'upload'이기 때문에 업로드에 실패했습니다라는 메시지가 나타납니다.이 메시지는 이 검증 행에서 발신됩니다.php:

자원 / 자원 / 자원 / 자원 / 유효화 / 유효화php:

'uploaded' => 'The :attribute failed to upload.',

이 메시지는 파일이 PHP에 의해 설정된 제한보다 클 때 표시됩니다.

보통 세 번째 파라미터 $messages 배열을 Validator::make() 메서드에 전달하면 이 메시지를 덮어씁니다.

, 리액트 컴포넌트에서 POST를 호출하고 있기 때문에 POST에는 CSRF 필드와 업로드 필드가 포함된 폼을 렌더링합니다.

그 대신, 슈퍼 어중간한 해커로서 메시지를 표시하는 뷰에 들어가 그 특정 메시지를 친근한 '파일 너무 큰' 메시지로 대체하기로 했습니다.

파일이 PHP 파일 크기 제한보다 작을 경우 다음과 같이 동작합니다.

다른 사람이 Laravel FormRequest 클래스를 사용하고 있는 경우, Laravel 5.7에서 나에게 도움이 된 것은 다음과 같습니다.

커스텀 에러 메시지와 최대 파일사이즈를 설정하는 방법은 다음과 같습니다.

입력 필드가 있습니다.<input type="file" name="upload">CSRF 토큰은 형식(구글 laravel csrf_field)에서도 필요합니다.

<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class Upload extends FormRequest
{
  ...
  ...
  public function rules() {
    return [
      'upload' => 'required|file|max:8192',
    ];
  }
  public function messages()
  {
    return [            
      'upload.required' => "You must use the 'Choose file' button to select which file you wish to upload",
      'upload.max' => "Maximum file size to upload is 8MB (8192 KB). If you are uploading a photo, try to reduce its resolution to make it under 8MB"
    ];
  }
}

언급URL : https://stackoverflow.com/questions/37432641/how-to-validate-on-max-file-size-in-laravel

반응형