Memahami HTTP Request (Retrieving Uploaded Files, Storing Uploaded Files) Laravel 5

joesep 2019-10-01 29

File

Retrieving Uploaded Files

Anda dapat mengakses file yang diunggah dari instance Illuminate\Http\Request menggunakan metode file atau menggunakan properti dinamis. The metode file mengembalikan sebuah instance dari kelas Illuminate\Http\UploadedFile, yang memperpanjang PHP kelas SplFileInfo dan menyediakan berbagai metode untuk berinteraksi dengan file: 

$file = $request->file('photo');

$file = $request->photo;

Anda dapat menentukan apakah ada file pada permintaan menggunakan hasFile metode:

if ($request->hasFile('photo')) {
    //
}

 

Validating Successful Uploads

Selain memeriksa apakah file tersebut ada, Anda dapat memverifikasi bahwa tidak ada masalah mengunggah file melalui isValid metode:

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

 

File  Paths & Extensions

The UploadedFile kelas juga berisi metode untuk mengakses jalur sepenuhnya-kualifikasi file dan ekstensi. The extension Metode akan mencoba menebak ekstensi file berdasarkan isinya. Ekstensi ini mungkin berbeda dari ekstensi yang disediakan oleh klien:

$path = $request->photo->path();

$extension = $request->photo->extension();

 

Other File Methods

Ada berbagai metode lain yang tersedia pada UploadedFile instance.

 

Storing Uploaded Files

Untuk menyimpan file yang diunggah, Anda biasanya akan menggunakan salah satu sistem file yang Anda konfigurasi . The UploadedFile kelas memiliki store metode yang akan memindahkan file upload ke salah satu disk Anda, yang mungkin menjadi lokasi di filesystem lokal Anda atau bahkan lokasi penyimpanan awan seperti Amazon S3.

The store Metode menerima path dimana file tersebut harus disimpan relatif terhadap direktori root dikonfigurasi filesystem. Jalur ini tidak boleh berisi nama file, karena ID unik akan secara otomatis dihasilkan untuk berfungsi sebagai nama file.

The store Metode juga menerima argumen kedua opsional untuk nama disk yang harus digunakan untuk menyimpan file. Metode ini akan mengembalikan path file relatif ke root disk:

$path = $request->photo->store('images');

$path = $request->photo->store('images', 's3');

Jika Anda tidak ingin nama file dihasilkan secara otomatis, Anda dapat menggunakan storeAs metode, yang menerima path, nama file, dan nama disk sebagai argumennya:

$path = $request->photo->storeAs('images', 'filename.jpg');

$path = $request->photo->storeAs('images', 'filename.jpg', 's3');

 

Configuring Trusted Proxies

Saat menjalankan aplikasi Anda di belakang penyeimbang beban yang mengakhiri sertifikat TLS / SSL, Anda mungkin memperhatikan bahwa aplikasi Anda terkadang tidak menghasilkan tautan HTTPS. Biasanya ini karena aplikasi Anda sedang meneruskan lalu lintas dari penyeimbang beban Anda pada port 80 dan tidak tahu itu harus menghasilkan tautan aman.

Untuk mengatasi ini, Anda dapat menggunakan App\Http\Middleware\TrustProxies middleware yang termasuk dalam aplikasi Laravel Anda, yang memungkinkan Anda untuk dengan cepat menyesuaikan penyeimbang muatan atau proksi yang harus dipercaya oleh aplikasi Anda. Proxy tepercaya Anda harus dicantumkan $proxies sebagai array di properti middleware ini. Selain mengonfigurasi proxy tepercaya, Anda dapat mengonfigurasi $headers proksi yang harus dipercaya: 

<?php

namespace App\Http\Middleware;

use Illuminate\Http\Request;
use Fideloper\Proxy\TrustProxies as Middleware;

class TrustProxies extends Middleware
{
    /**
     * The trusted proxies for this application.
     *
     * @var array
     */
    protected $proxies = [
        '192.168.1.1',
        '192.168.1.2',
    ];

    /**
     * The headers that should be used to detect proxies.
     *
     * @var string
     */
    protected $headers = Request::HEADER_X_FORWARDED_ALL;
}

 

 

Trusting All Proxies

Jika Anda menggunakan Amazon AWS atau penyedia penyeimbang beban "cloud" lainnya, Anda mungkin tidak tahu alamat IP penyeimbang Anda yang sebenarnya. Dalam hal ini, Anda dapat menggunakan *untuk memercayai semua proxy:

/**
 * The trusted proxies for this application.
 *
 * @var array
 */
protected $proxies = '*';

Rekomendasi Artikel


Terbaru dari framework Laravel



Search


Top Stories


  1. Membuat Perulangan Segitiga Bintang Dengan PHP

    on 2018-01-12

  2. Membatasi Jumlah Karakter dengan PHP

    on 2018-01-23

  3. Kenapa Telinga Gatal dan Berair

    on 2018-04-13

  4. Membuat Tanggal dan Zona Waktu Sederhana dengan PHP

    Admin on 2017-11-26

  5. Membuat Paragraf Otomatis dengan Script PHP

    on 2018-01-26

Other Post


Top Videos


  1. Founder SB1M dan Pemilik Distro BLOOP ini BANGKIT dari BANGKRUT 16x dan HUTANG 11M | Christina Lie

    joesep on 2019-06-04

  2. vivo Z1 Pro VS OPPO A9 2020 | Duel HP 3 Jutaan Terbaik 2019!

    joesep on 2019-09-26

  3. FILM Horor Terbaru "SABRINA THE DOLL 2" Full Movie 2018

    Andri03 on 2018-08-01

  4. Sandiaga Uno Resmi Mundur dari Ketua Tim Pemenangan Partai Gerindra

    joesep on 2018-07-31

  5. Aplikasi Kasir Point of Sale Restoran / Kafe Berbasis WEB

    joesep on 2018-08-15

close