Untuk mengusahakan muat naik fail, kami akan menggunakan pembantu borang. Di sini, ialah contoh untuk muat naik fail.
Contoh
Buat Perubahan dalam fail config/routes.php, seperti yang ditunjukkan dalam program berikut.
config/routes.php
<?php use Cake\Http\Middleware\CsrfProtectionMiddleware; use Cake\Routing\Route\DashedRoute; use Cake\Routing\RouteBuilder; $routes->setRouteClass(DashedRoute::class); $routes->scope('/', function (RouteBuilder $builder) { $builder->registerMiddleware('csrf', new CsrfProtectionMiddleware([ 'httpOnly' => true, ])); $builder->applyMiddleware('csrf'); //$builder->connect('/pages',['controller'=>'Pages','action'=>'display', 'home']); $builder->connect('fileupload',['controller'=>'Files','action'=>'index']); $builder->fallbacks(); });
Buat fail FilesController.php di src/Controller/FilesController.php. Salin kod berikut dalam fail pengawal. Abaikan, jika sudah dibuat.
Buat muat naik/ direktori dalam src/. Fail yang dimuat naik akan disimpan dalam muat naik/ folder.
src/Controller/FilesController.php
<?php namespace App\Controller; use App\Controller\AppController; use Cake\View\Helper\FormHelper; class FilesController extends AppController { public function index(){ if ($this->request->is('post')) { $fileobject = $this->request->getData('submittedfile'); $uploadPath = '../uploads/'; $destination = $uploadPath.$fileobject->getClientFilename(); // Existing files with the same name will be replaced. $fileobject->moveTo($destination); } } } ?>
Buat direktori Fail di src/Template dan di bawah direktori itu cipta fail View yang dipanggil index.php. Salin mengikuti kod dalam fail itu.
src/Template/Files/index.php
<?php echo $this->Form->create(NULL, ['type' => 'file']); echo $this->l;Form->file('submittedfile'); echo $this->Form->button('Submit'); echo $this->Form->end(); $uploadPath ='../uploads/'; $files = scandir($uploadPath, 0); echo "Files uploaded in uploads/ are:<br/>"; for($i = 2; $i < count($files); $i++) echo "File is - ".$files[$i]."<br>"; ?>
Fail yang disimpan dalam muat naik/ folder disenaraikan untuk pengguna. Laksanakan contoh di atas dengan melawati URL berikut ?
http://localhost/cakephp4/fileupload ?
Output
Apabila anda melaksanakan kod di atas, anda akan melihat output berikut ?

Atas ialah kandungan terperinci Muat naik Fail CakePHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Untuk mengendalikan muat naik fail PHP dengan selamat, anda perlu mengesahkan sumber dan jenis, mengawal nama fail dan laluan, menetapkan sekatan pelayan, dan memproses fail media dua kali. 1. Sahkan sumber muat naik untuk mengelakkan CSRF melalui token dan mengesan jenis mime sebenar melalui finfo_file menggunakan kawalan putih; 2. Namakan semula fail ke rentetan rawak dan tentukan pelanjutan untuk menyimpannya dalam direktori bukan web mengikut jenis pengesanan; 3. Konfigurasi PHP mengehadkan saiz muat naik dan direktori sementara Nginx/Apache melarang akses ke direktori muat naik; 4. Perpustakaan GD menyambung semula gambar -gambar untuk membersihkan data yang berpotensi.

Inphp, variablesarepassedbyvalueDefault, arequFunctionsorassignmentsReceiveacopyofthedata, sementara

Ageneratorinphpisamemory-efficientwaytoiterateOverlargedatasetsbyieldingvaluesonateatimeNsteadofreturningthemallatonce.1.GeneratorSuseTheyEldeyWorderWorderToProducevaluuesondemand,

Sebab mengapa header ('Lokasi: ...') Dalam permintaan Ajax tidak sah adalah bahawa penyemak imbas tidak akan secara automatik melakukan pengalihan halaman. Kerana dalam permintaan AJAX, kod status 302 dan maklumat header lokasi yang dikembalikan oleh pelayan akan diproses sebagai data tindak balas, dan bukannya mencetuskan tingkah laku lompat. Penyelesaian adalah: 1. Kembali data JSON dalam PHP dan termasuk URL Jump; 2. Semak medan redirect di hadapan Ajax callback dan lompat secara manual dengan window.location.href; 3. Pastikan output PHP hanya JSON untuk mengelakkan kegagalan parsing; 4. Untuk menangani masalah lintas domain, anda perlu menetapkan tajuk CORS yang sesuai; 5. Untuk mengelakkan gangguan cache, anda boleh menambah cap waktu atau tetapkan cache: f

Untuk mengelakkan rampasan sesi dalam PHP, langkah -langkah berikut perlu diambil: 1. Gunakan HTTPS untuk menyulitkan penghantaran dan set session.cookie_secure = 1 dalam php.ini; 2. Tetapkan atribut kuki keselamatan, termasuk httponly, selamat dan samesite; 3. Panggil session_regenerate_id (benar) apabila pengguna log masuk atau keizinan berubah menjadi berubah menjadi SesiSeId; 4. Hadkan kitaran hayat sesi, konfigurasi GC_MAXLIFETIME dan rekod masa aktiviti pengguna; 5. melarang mendedahkan sessionId ke url, dan tetapkan session.use_only

Fungsi urlencode () digunakan untuk menyandikan rentetan ke dalam format selamat URL, di mana aksara bukan alphanumerik (kecuali-, _, dan.) Digantikan dengan tanda peratus diikuti oleh nombor heksadesimal dua angka. Sebagai contoh, ruang ditukar kepada tanda-tanda, tanda seru ditukar kepada!, Dan watak-watak Cina ditukar kepada borang pengekodan UTF-8 mereka. Apabila menggunakan, hanya nilai parameter yang perlu dikodkan, bukan keseluruhan URL, untuk mengelakkan merosakkan struktur URL. Untuk bahagian lain URL, seperti segmen laluan, fungsi Rawurlencode () harus digunakan, yang menukarkan ruang ke. Apabila memproses parameter array, anda boleh menggunakan http_build_query () untuk mengodkan secara automatik, atau memanggil urlencode secara manual () pada setiap nilai untuk memastikan pemindahan data yang selamat. Hanya

Dalam PHP, anda boleh menggunakan kurungan persegi atau pendakap keriting untuk mendapatkan aksara indeks spesifik rentetan, tetapi kurungan persegi disyorkan; Indeks bermula dari 0, dan akses di luar julat mengembalikan nilai null dan tidak dapat diberikan nilai; MB_SUBSTR dikehendaki mengendalikan watak multi-bait. Sebagai contoh: $ str = "hello"; echo $ str [0]; output h; dan watak -watak Cina seperti MB_SUBSTR ($ str, 1,1) perlu mendapatkan hasil yang betul; Dalam aplikasi sebenar, panjang rentetan perlu diperiksa sebelum gelung, rentetan dinamik perlu disahkan untuk kesahihan, dan projek berbilang bahasa mengesyorkan menggunakan fungsi keselamatan multi-bait secara seragam.

Cara yang paling langsung untuk mencari kejadian terakhir substring dalam PHP ialah menggunakan fungsi StrrpOS (). 1. Gunakan fungsi strrpos () untuk mendapatkan indeks kejadian terakhir substring dalam rentetan utama. Jika ia tidak dijumpai, ia mengembalikan palsu. Sintaks adalah strrpos ($ haystack, $ jarum, $ offset = 0). 2. Jika anda perlu mengabaikan kes, anda boleh menggunakan fungsi strripos () untuk melaksanakan carian kes-insensitif. 3. Bagi watak multi-bait seperti Cina, fungsi MB_STRRPOS () dalam lanjutan MBSTRING harus digunakan untuk memastikan kedudukan watak dikembalikan dan bukannya kedudukan byte. 4. Perhatikan bahawa strrpos () pulangan f
