Dengan perkembangan pesat aplikasi Internet moden, pemampatan data telah menjadi bahagian penting dalam kerja harian. Terutama untuk fail media, pemindahan fail yang besar boleh menyebabkan penurunan dalam pengalaman pengguna, jadi pemampatan dalam talian fail media telah menjadi keperluan biasa. Di sini kami akan memperkenalkan cara menggunakan Laravel untuk melaksanakan fungsi pemampatan dalam talian.
1. Pengenalan
Laravel ialah rangka kerja pembangunan pesat dengan sintaks yang elegan, API yang mudah digunakan dan banyak ciri lain. Menggunakan rangka kerja Laravel untuk pembangunan boleh meningkatkan kecekapan pembangunan dan menjimatkan masa dan tenaga. Antaranya, pemampatan fail dalam talian ialah fungsi yang ingin kami laksanakan dalam rangka kerja Laravel.
2. Pelaksanaan
Pertama, kita perlu menggunakan Composer untuk memasang sambungan PHP GD untuk menyediakan fungsi yang diperlukan untuk memampatkan imej. Selepas pemasangan selesai, anda boleh memanggil fungsi sambungan GD dalam Laravel untuk memampatkan imej.
Seterusnya, kita perlu mencipta pengawal untuk mengendalikan logik pemampatan imej dalam talian. Dalam pengawal, kita perlu menulis kaedah yang akan digunakan untuk menerima fail media yang dimuat naik oleh pengguna dan memampatkannya. Selepas pemprosesan, kami perlu menyimpan fail termampat secara setempat pada pelayan dan akhirnya mengembalikan respons dengan pautan URL.
Berikut ialah contoh mudah yang menunjukkan cara melaksanakan pemampatan imej dalam talian dalam Laravel:
use Illuminate\Http\Request; use Intervention\Image\Facades\Image; class CompressionController extends Controller { public function compress(Request $request) { $image = $request->file('image'); $extension = $image->getClientOriginalExtension(); $filename = time() . '.' . $extension; $path = public_path('images/' . $filename); Image::make($image->getRealPath())->resize(500, 500)->save($path); return response()->json(['url' => env('APP_URL') . '/images/' . $filename]); } }
Dalam kod di atas, kami menggunakan pemalam Intervensi/Imej untuk mengendalikan pemampatan imej . Baris pertama kod $image = $request->file('image')
menunjukkan bahawa kami mendapat imej yang dimuat naik oleh pengguna daripada permintaan. Seterusnya, kami mendapatkan sambungan imej melalui $image->getClientOriginalExtension()
, kemudian gunakan fungsi time()
untuk menjana nama fail yang unik dan menyimpannya ke direktori public/images/
setempat pelayan.
Dalam baris $path = public_path('images/' . $filename)
kod, fungsi public_path
mewakili laluan awam dalam rangka kerja Laravel, dan kemudian menggabungkan laluan yang disimpan secara setempat dan nama fail fail imej untuk mendapatkan laluan imej yang lengkap.
Image::make($image->getRealPath())->resize(500, 500)->save($path)
Dalam baris kod ini, kami menggunakan kaedah make
dan resize
yang disediakan oleh pemalam Intervention/Imej untuk memampatkan imej yang dimuat naik, dan akhirnya menyimpan imej yang dimampatkan melalui save
kaedah ke laluan tempatan.
Akhir sekali, kami menyimpan alamat URL imej dalam pembolehubah $url = env('APP_URL') . '/images/' . $filename)
melalui $url
dan mengembalikannya kepada pengguna sebagai respons JSON.
3. Ringkasan
Melalui langkah di atas, kami telah berjaya melaksanakan fungsi pemampatan dalam talian dalam Laravel. Kami perlu mendapatkan fail media yang dimuat naik daripada permintaan, kemudian gunakan kaedah yang disediakan oleh sambungan GD dan pemalam Intervensi/Imej untuk memampatkan fail, dan akhirnya menyimpan fail yang diproses ke pelayan secara setempat dan mengembalikan alamat URL ke pengguna. Dengan cara ini, pengguna boleh memampatkan dan memuat turun imej dalam talian dalam penyemak imbas.
Atas ialah kandungan terperinci Cara menggunakan Laravel untuk melaksanakan fungsi pemampatan dalam talian. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!