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 = '*';
http request
belajar laravel
tutorial laravel
laravel
storing uploaded files
retrieving uploaded files