>  기사  >  PHP 프레임워크  >  laravel HTTP 요청: 쿠키 및 업로드된 파일 가져오기

laravel HTTP 요청: 쿠키 및 업로드된 파일 가져오기

齐天大圣
齐天大圣원래의
2020-12-14 21:44:571828검색

COOKIE

Laravel은 최하위 레이어의 쿠키 값을 암호화하고 서명을 위해 인증 코드를 사용합니다. 따라서 클라이언트가 쿠키 값을 수정하면 유효하지 않게 됩니다. 이렇게 하면 쿠키 위조에 대해 걱정할 필요가 없습니다.

쿠키 값 설정

쿠키 값 설정은 여기에서 간략하게 설명하는 라라벨 응답(Response)에 대한 지식을 사용합니다.

쿠키 함수를 사용하여 쿠키를 생성한 다음 응답 함수를 통해 클라이언트에 쿠키를 반환할 수 있습니다.

// cookie($name, $value, $minutes, $path, $domain, false, ...);
$cookie = cookie('username', 'php.cn', 3600);
return response('hello laravel')->cookie($cookie);

쿠키 함수를 사용하는 것 외에도 응답 인스턴스의 쿠키 메서드를 사용하여 설정할 수도 있습니다. 그리고 그것을 돌려보내세요. 이 메소드와 쿠키 함수의 매개변수는 일관됩니다.

return response('Hello World')->cookie(
    'name', 'php.cn', 3600
);

쿠키 값 가져오기

쿠키 값을 가져오는 방법에는 두 가지가 있습니다. 이 두 가지 방법은 아래에 설명되어 있습니다.

use Illuminate\Http\Request;
$value = $request->cookie('name');
// 或
use Illuminate\Support\Facades\Cookie;
$value = Cookie::get('name');

업로드된 파일 가져오기

laravel 프레임워크는 업로드된 파일을 가져옵니다. 파일을 매우 간단하게 유지합니다.

업로드된 파일을 가져오는 방법에는 파일 방법과 동적 속성 방법을 사용하는 두 가지 방법이 있습니다. 이 메소드는 IlluminateHttpUploadedFile 인스턴스를 반환합니다.

$logo = $request->file('logo');
// or
$logo = $request->logo;

물론 파일을 가져오기 전에 파일이 존재하는지 확인할 수 있습니다. 여기에서 hasFile 메소드를 사용하세요.

if ($request->hasFile('logo')) {
    $logo = $request->file('logo');
}

요청 요청 인스턴스는 업로드된 파일을 확인할 수도 있습니다.

if ($request->file('logo')->isValid()) {
    //
}

uploadFile 인스턴스에는 업로드된 파일의 임시 저장 경로, 확장자 및 기타 정보를 얻기 위한 다양한 방법이 있습니다. 다음은 파일 형식 접미사

$logo = $request->file('logo');
$logo->path();  // png

를 얻는 방법을 보여줍니다. 마지막으로 저장 방법을 사용하여 파일을 저장합니다. 이 방법에는 첫 번째 매개 변수가 파일을 저장할 경로를 채우고 두 번째 매개 변수가 있습니다. 매개변수는 파일이 저장된 호스트(또는 타사 플랫폼)를 채웁니다. Laravel은 자동으로 파일 이름으로 고유 ID를 생성합니다. 이 정보는 다음과 같이 구성 파일 config/filesystems.php에 있습니다.

'disks' => [
    'local' => [
        'driver' => 'local',
        'root' => storage_path('app'),
    ],
    'public' => [
        'driver' => 'local',
        'root' => storage_path('app/public'),
        'url' => env('APP_URL').'/storage',
        'visibility' => 'public',
    ],
    's3' => [
        'driver' => 's3',
        'key' => env('AWS_ACCESS_KEY_ID'),
        'secret' => env('AWS_SECRET_ACCESS_KEY'),
        'region' => env('AWS_DEFAULT_REGION'),
        'bucket' => env('AWS_BUCKET'),
        'url' => env('AWS_URL'),
        'endpoint' => env('AWS_ENDPOINT'),
    ],
],

가격 요청 파일을 저장할 파일 이름을 직접 설정하려면 storeAs 메소드를 사용해야 합니다. 설정할 파일 이름.

$request->file('logo')->storeAs('img/logo', '1.png');

마지막으로 전체 파일 업로드 코드 예시를 게시하세요.

html 코드는 다음과 같습니다.

<form method="post" action="/index?a=32" enctype="multipart/form-data">
    @csrf
    <input type="file" name="logo" >
    <input type="submit" value="sub" />
</form>

파일 코드는 다음과 같이 저장합니다.

if ($request->hasFile(&#39;logo&#39;)) {
    $logo = $request->file(&#39;logo&#39;);
    if ($logo->isValid()) {
        $ext = $logo->extension();
        $fileName = date(&#39;YmdHis&#39;) . mt_rand(10000,99999);
        $path = $logo->storeAs(&#39;img/logo&#39;, $fileName . &#39;.&#39; . $ext);
        dump($path); //"img/logo/2020121413351718218.png"
    }
}

위 내용은 laravel HTTP 요청: 쿠키 및 업로드된 파일 가져오기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.