/**
* This function moves the archives and directoryes of a directory of
* origin for a directory destination being able replace them or not.
**/
function mvdir($oldDir, $newDir, $replaceFiles = true) {
if ($oldDir == $newDir) {
trigger_error("Destination directory is equal of origin.");
return false;
}
if (!($tmpDir = opendir($oldDir))) {
trigger_error("It was not possible to open origin directory.");
return false;
}
if (!is_dir($newDir)) {
trigger_error("It was not possible to open destination directory.");
return false;
}
while (($file = readdir($tmpDir)) !== false) {
if (($file != ".") && ($file !== "..")) {
$oldFileWithDir = $oldDir . $file;
$newFileWithDir = $newDir . $file;
if (is_dir($oldFileWithDir)) {
@mkdir($newFileWithDir."/", 0777);
@mvdir($oldFileWithDir."/", $newFileWithDir."/", $replaceFiles);
@rmdir($oldFileWithDir);
function mvdir($oldDir, $newDir, $replaceFiles = true) {
_0
function mvdir($oldDir, $newDir, $replaceFiles = true) {
_1
function mvdir($oldDir, $newDir, $replaceFiles = true) {
_2
function mvdir($oldDir, $newDir, $replaceFiles = true) {
_3
function mvdir($oldDir, $newDir, $replaceFiles = true) {
_4
function mvdir($oldDir, $newDir, $replaceFiles = true) {
_5
function mvdir($oldDir, $newDir, $replaceFiles = true) {
_6
function mvdir($oldDir, $newDir, $replaceFiles = true) {
_7
function mvdir($oldDir, $newDir, $replaceFiles = true) {
_8
Pada artikel ini, saya akan menjelaskan dasar-dasar upload file di PHP. Pertama, kita akan membahas opsi konfigurasi PHP yang harus ada agar unggahan file berhasil. Setelah itu, kami akan mengembangkan contoh dunia nyata tentang cara mengunggah file
Konfigurasikan Pengaturan PHP
Ada beberapa pengaturan konfigurasi PHP yang ingin Anda periksa sebelumnya untuk unggahan file yang berhasil. Di bagian ini, kita akan membahas setiap opsi penting sehubungan dengan pengunggahan file PHP. Opsi ini dapat dikonfigurasi di php. file ini
Jika Anda tidak yakin di mana menemukan php. Ini, Anda dapat menggunakan
; Whether to allow HTTP file uploads.
49 untuk menemukannya. Buat saja file PHP di server Anda dengan baris berikut, dan buka dari browser
1
echo php_ini_loaded_file(); ?>
Berikut kutipan dari file setup dengan beberapa default yang berguna
1
; Whether to allow HTTP file uploads.
2
file_uploads = On
3
4
; Temporary directory for HTTP uploaded files.
5
echo php_ini_loaded_file(); ?>
0
echo php_ini_loaded_file(); ?>
1
echo php_ini_loaded_file(); ?>
2
echo php_ini_loaded_file(); ?>
3
echo php_ini_loaded_file(); ?>
4
echo php_ini_loaded_file(); ?>
5
echo php_ini_loaded_file(); ?>
6
echo php_ini_loaded_file(); ?>
7
echo php_ini_loaded_file(); ?>
8
echo php_ini_loaded_file(); ?>
9
1
0
1
1
1
2
1
3
1
4
1
5
1
6
1
7
1
8
1
9
; Whether to allow HTTP file uploads.
0
; Whether to allow HTTP file uploads.
1
; Whether to allow HTTP file uploads.
2
; Whether to allow HTTP file uploads.
3
; Whether to allow HTTP file uploads.
4
Pengaturan Kunci
; Whether to allow HTTP file uploads.
_50
Nilai arahan
; Whether to allow HTTP file uploads.
50 harus disetel ke
; Whether to allow HTTP file uploads.
52 untuk mengizinkan upload file. Nilai default dari arahan ini adalah
; Whether to allow HTTP file uploads.
52
; Whether to allow HTTP file uploads.
_54
Arahan
; Whether to allow HTTP file uploads.
54 memungkinkan Anda mengonfigurasi ukuran maksimum file yang diunggah. Secara default, disetel ke
; Whether to allow HTTP file uploads.
56 (dua megabita), dan Anda dapat mengganti setelan ini menggunakan. htaccess juga. Dua megabyte tidak terlalu banyak menurut standar saat ini, jadi Anda mungkin harus meningkatkannya. Jika Anda mendapatkan pesan error yang
; Whether to allow HTTP file uploads.
57 saat mencoba mengupload file, Anda perlu menambah nilai ini. Jika ya, pastikan juga untuk meningkatkan
; Whether to allow HTTP file uploads.
58 (lihat di bawah)
; Whether to allow HTTP file uploads.
_59
Menetapkan direktori sementara yang akan digunakan untuk menyimpan file yang diunggah. Dalam kebanyakan kasus, Anda tidak perlu khawatir tentang pengaturan ini. Jika Anda tidak menyetelnya, direktori temp default sistem akan digunakan
; Whether to allow HTTP file uploads.
_58
Arahan
; Whether to allow HTTP file uploads.
58 memungkinkan Anda mengonfigurasi ukuran maksimum data POST. Karena file diupload dengan permintaan POST, nilai ini harus lebih besar dari yang Anda tetapkan untuk perintah
; Whether to allow HTTP file uploads.
54 . Misalnya, jika
; Whether to allow HTTP file uploads.
54 adalah
; Whether to allow HTTP file uploads.
64 (16 megabita), Anda mungkin ingin menyetel
; Whether to allow HTTP file uploads.
58 ke
; Whether to allow HTTP file uploads.
66
; Whether to allow HTTP file uploads.
_67
Ini memungkinkan Anda untuk mengatur jumlah maksimum file yang dapat diunggah sekaligus. Standarnya adalah
; Whether to allow HTTP file uploads.
_68, jumlah yang masuk akal
; Whether to allow HTTP file uploads.
_69
Ini adalah jumlah detik maksimum yang diizinkan skrip untuk mengurai data masukan. Anda harus mengaturnya ke nilai yang wajar jika Anda berurusan dengan pengunggahan file besar.
; Whether to allow HTTP file uploads.
70 (60 detik) adalah nilai yang baik untuk sebagian besar aplikasi
; Whether to allow HTTP file uploads.
_71
Direktif
; Whether to allow HTTP file uploads.
71 menunjukkan jumlah maksimum memori yang dapat digunakan skrip. Jika Anda menghadapi masalah saat mengupload file besar, Anda perlu memastikan bahwa nilai arahan ini lebih besar dari nilai yang Anda tetapkan untuk arahan
; Whether to allow HTTP file uploads.
58 . Nilai defaultnya adalah
; Whether to allow HTTP file uploads.
74 (128 megabita), jadi kecuali Anda memiliki
; Whether to allow HTTP file uploads.
58 dan
; Whether to allow HTTP file uploads.
54 yang sangat besar, Anda tidak perlu khawatir tentang ini
; Whether to allow HTTP file uploads.
_77
Ini adalah jumlah maksimum detik yang diizinkan untuk menjalankan skrip. Jika Anda menghadapi masalah saat mengupload file berukuran besar, Anda dapat mempertimbangkan untuk meningkatkan nilai ini.
; Whether to allow HTTP file uploads.
78 (30 detik) seharusnya berfungsi dengan baik untuk sebagian besar aplikasi
Sekarang mari kita buat contoh dunia nyata untuk mendemonstrasikan pengunggahan file dalam PHP
Setelah mengonfigurasi pengaturan PHP, Anda siap untuk mencoba kemampuan mengunggah file PHP
Repo GitHub kami memiliki beberapa contoh kode yang akan saya bahas di sepanjang artikel ini. Jadi, jika Anda ingin mengikuti, silakan dan unduh dari GitHub
Kami akan membuat dua file PHP. indeks. php dan unggah. php. Indeks. php file menyimpan kode yang bertanggung jawab untuk menampilkan formulir upload file. Di sisi lain, file upload. php file bertanggung jawab untuk mengunggah file ke server
Selain itu, file akan diunggah di direktori uploaded_files , jadi Anda perlu memastikan bahwa folder ini ada dan dapat ditulis oleh pengguna ________0______79
Di bagian ini, kita akan membahas bagian-bagian penting dari indeks. file php
Mari kita lihat indeks. php berkas di GitHub
1
; Whether to allow HTTP file uploads.
6
2
; Whether to allow HTTP file uploads.
8
3
2
0
4
2
2
5
2
4
echo php_ini_loaded_file(); ?>
1
2
6
echo php_ini_loaded_file(); ?>
3
2
8
echo php_ini_loaded_file(); ?>
4
file_uploads = On
0
echo php_ini_loaded_file(); ?>
6
file_uploads = On
2
echo php_ini_loaded_file(); ?>
8
file_uploads = On
4
echo php_ini_loaded_file(); ?>
9
file_uploads = On
6
1
1
file_uploads = On
8
1
3
3
0
1
4
3
2
1
6
3
4
1
8
3
6
1
9
3
8
; Whether to allow HTTP file uploads.
1
4
0
; Whether to allow HTTP file uploads.
3
4
2
4
3
4
4
4
5
4
6
4
7
4
8
4
9
; Temporary directory for HTTP uploaded files.
0
; Temporary directory for HTTP uploaded files.
1
; Temporary directory for HTTP uploaded files.
2
; Temporary directory for HTTP uploaded files.
3
; Temporary directory for HTTP uploaded files.
4
; Temporary directory for HTTP uploaded files.
5
Anda dapat menggunakan CSS berikut untuk memberikan tampilan yang lebih menarik
1
; Temporary directory for HTTP uploaded files.
7
2
; Temporary directory for HTTP uploaded files.
9
3
5
1
4
5
3
5
5
5
echo php_ini_loaded_file(); ?>
1
echo php_ini_loaded_file(); ?>
3
5
8
echo php_ini_loaded_file(); ?>
4
echo php_ini_loaded_file(); ?>
00
echo php_ini_loaded_file(); ?>
6
echo php_ini_loaded_file(); ?>
02
echo php_ini_loaded_file(); ?>
8
5
5
echo php_ini_loaded_file(); ?>
9
1
1
echo php_ini_loaded_file(); ?>
07
1
3
echo php_ini_loaded_file(); ?>
09
1
4
; Temporary directory for HTTP uploaded files.
9
1
6
echo php_ini_loaded_file(); ?>
13
1
8
echo php_ini_loaded_file(); ?>
15
1
9
echo php_ini_loaded_file(); ?>
17
; Whether to allow HTTP file uploads.
1
5
1
; Whether to allow HTTP file uploads.
3
echo php_ini_loaded_file(); ?>
21
4
3
echo php_ini_loaded_file(); ?>
23
4
5
5
5
4
7
4
8
echo php_ini_loaded_file(); ?>
28
; Temporary directory for HTTP uploaded files.
0
echo php_ini_loaded_file(); ?>
30
; Temporary directory for HTTP uploaded files.
2
5
5
; Temporary directory for HTTP uploaded files.
4
echo php_ini_loaded_file(); ?>
34
echo php_ini_loaded_file(); ?>
35
echo php_ini_loaded_file(); ?>
36
echo php_ini_loaded_file(); ?>
37
echo php_ini_loaded_file(); ?>
38
echo php_ini_loaded_file(); ?>
39
echo php_ini_loaded_file(); ?>
40
echo php_ini_loaded_file(); ?>
41
echo php_ini_loaded_file(); ?>
42_______
CSS pada dasarnya menyembunyikan file asli
; Whether to allow HTTP file uploads.
80 dan memberi gaya pada elemen
; Whether to allow HTTP file uploads.
81 dan
; Whether to allow HTTP file uploads.
82 yang menyertainya
Meskipun mungkin terlihat seperti formulir PHP pada umumnya, ada perbedaan penting dalam nilai atribut
; Whether to allow HTTP file uploads.
83 dari tag
; Whether to allow HTTP file uploads.
84 . Ini harus disetel ke
; Whether to allow HTTP file uploads.
_85 karena formulir berisi kolom file
Atribut
; Whether to allow HTTP file uploads.
83 menentukan jenis enkode yang harus digunakan saat formulir dikirimkan, dan memerlukan salah satu dari tiga nilai berikut
; Whether to allow HTTP file uploads.
_87. Ini adalah nilai default jika Anda tidak menetapkan nilai atribut ; Whether to allow HTTP file uploads.
83 secara eksplisit. Dalam hal ini, karakter dikodekan sebelum dikirim ke server. Jika Anda tidak memiliki bidang file dalam formulir, Anda harus menggunakan nilai ini untuk atribut ; Whether to allow HTTP file uploads.
83; Whether to allow HTTP file uploads.
_85. Saat Anda menggunakan nilai ; Whether to allow HTTP file uploads.
85 untuk atribut ; Whether to allow HTTP file uploads.
83 , Anda dapat mengupload file menggunakan metode POST. Selain itu, memastikan bahwa karakter tidak dikodekan saat formulir dikirimkan; Whether to allow HTTP file uploads.
_93. Ini umumnya tidak digunakan. Dengan pengaturan ini, data dikirim tanpa penyandian
Selanjutnya, kami menampilkan bidang file, yang memungkinkan Anda memilih file dari komputer Anda
1
echo php_ini_loaded_file(); ?>
_80
Selain itu, kami telah menampilkan pesan di bagian atas formulir. Pesan ini menunjukkan status file yang diupload, dan akan ditetapkan dalam variabel sesi oleh file yang diupload. skrip php. Kami akan melihat lebih banyak tentang ini di bagian selanjutnya
1
; Whether to allow HTTP file uploads.
6
2
file_uploads = On
6
3
file_uploads = On
8
4
3
0
5
3
2
echo php_ini_loaded_file(); ?>
1
3
4
echo php_ini_loaded_file(); ?>
3
3
6
Jadi itu meringkas index. file php. Di bagian selanjutnya, kita akan melihat cara menangani file yang diunggah di sisi server
Buat Logika Pengunggahan
Di bagian sebelumnya, kami membuat formulir HTML yang ditampilkan di sisi klien dan memungkinkan Anda untuk mengunggah file dari komputer Anda. Di bagian ini, kita akan melihat mitra sisi server yang memungkinkan Anda menangani file yang diunggah
Tarik kode dari upload. php berkas di GitHub. Kami akan membahas bagian penting dari file itu
Di upload. php, kami telah memeriksa apakah ini merupakan permintaan POST yang valid
1
echo php_ini_loaded_file(); ?>
96
2
echo php_ini_loaded_file(); ?>
98________7__10_______5
Di PHP, saat file diunggah, variabel superglobal
; Whether to allow HTTP file uploads.
94 diisi dengan semua informasi tentang file yang diunggah. Ini diinisialisasi sebagai larik dan mungkin berisi informasi berikut agar unggahan file berhasil
; Whether to allow HTTP file uploads.
_95. Jalur sementara tempat file diunggah disimpan dalam variabel ini; Whether to allow HTTP file uploads.
_96. Nama sebenarnya dari file tersebut disimpan dalam variabel ini; Whether to allow HTTP file uploads.
_97. Menunjukkan ukuran file yang diunggah dalam byte; Whether to allow HTTP file uploads.
_98. Berisi jenis pantomim dari file yang diunggah; Whether to allow HTTP file uploads.
_99. Jika terjadi kesalahan saat mengunggah file, variabel ini diisi dengan pesan kesalahan yang sesuai. Jika unggahan file berhasil, ini berisi 0, yang dapat Anda bandingkan dengan menggunakan konstanta 2
00
Setelah memvalidasi permintaan POST, kami memeriksa apakah unggahan file berhasil
1
1
02
2
echo php_ini_loaded_file(); ?>
98________7__10_______5
Anda dapat melihat bahwa variabel
; Whether to allow HTTP file uploads.
94 adalah larik multidimensi, elemen pertama adalah nama bidang file, dan elemen kedua berisi informasi tentang file yang diunggah, seperti yang baru saja kita bahas di atas
Jika unggahan file berhasil, kami menginisialisasi beberapa variabel dengan informasi tentang file yang diunggah
1
1
08
2
1
10
3
1
12______8_______
1
14
5
1
16
echo php_ini_loaded_file(); ?>
1
1
18
echo php_ini_loaded_file(); ?>
3________1______20
Dalam cuplikan di atas, kami juga telah mengetahui ekstensi file yang diunggah dan menyimpannya di variabel
2
02
Karena file yang diunggah mungkin berisi spasi dan karakter khusus lainnya, lebih baik membersihkan nama file, dan itulah yang telah kami lakukan di cuplikan berikut
1
1
22
Penting bagi Anda untuk membatasi jenis file yang dapat diunggah ke ekstensi tertentu dan tidak mengizinkan semuanya menggunakan formulir unggahan. Kami telah melakukannya dengan memeriksa ekstensi file yang diunggah dengan serangkaian ekstensi yang ingin kami izinkan untuk diunggah
1
1
24
2
1
26
3
echo php_ini_loaded_file(); ?>
98
4
5
5
Terakhir, kami menggunakan fungsi
2
_03 untuk memindahkan file yang diunggah ke lokasi tertentu pilihan kami
1
1
32
2
1
34
3
1
36
4
5
1
39
echo php_ini_loaded_file(); ?>
1
1
41
echo php_ini_loaded_file(); ?>
3
1
43
echo php_ini_loaded_file(); ?>
4
5
5
echo php_ini_loaded_file(); ?>
6
1
47
echo php_ini_loaded_file(); ?>
8
1
41
echo php_ini_loaded_file(); ?>
9
1
51
1
1
5
5
Fungsi
2
_03 mengambil dua argumen. Argumen pertama adalah nama file dari file yang diunggah, dan argumen kedua adalah jalur tujuan tempat Anda ingin memindahkan file
Terakhir, kami mengalihkan pengguna ke index. file php. Selain itu, kami menyetel pesan yang sesuai dalam variabel sesi, yang akan ditampilkan kepada pengguna setelah pengalihan di indeks. file php
Bagaimana Semuanya Bekerja Bersama
Jangan lupa untuk membuat direktori uploaded_files dan membuatnya dapat ditulis oleh pengguna server web . Selanjutnya, lanjutkan dan jalankan file index. php, yang seharusnya menampilkan formulir upload file yang terlihat seperti ini
Klik tombol Browse —itu akan membuka kotak dialog yang memungkinkan Anda memilih file dari komputer Anda. Pilih file dengan salah satu ekstensi yang diperbolehkan dalam skrip kami, dan klik tombol Unggah
Itu harus mengirimkan formulir, dan jika semuanya berjalan dengan baik, Anda akan melihat file yang diunggah di direktori file yang diunggah. Anda juga dapat mencoba mengunggah file lain dengan ekstensi yang tidak diizinkan, dan memeriksa apakah skrip kami mencegah pengunggahan tersebut
Mengatasi Kesalahan Umum
Banyak hal yang salah selama pengunggahan file yang mungkin mengakibatkan kesalahan. Anda dapat memeriksa error sebenarnya yang terjadi selama upload menggunakan
2
05. Berikut penjelasan dari kesalahan-kesalahan tersebut
File Terlalu Besar
2
06 dan
2
07 terjadi ketika ukuran file yang diunggah lebih dari nilai yang ditentukan dalam php. ini atau bentuk HTML masing-masing. Anda dapat menghilangkan kesalahan ini dengan meningkatkan batas ukuran unggahan atau memberi tahu pengguna sebelumnya
Folder Sementara Tidak Ada
2
08 dilaporkan saat folder sementara untuk mengunggah file hilang.
2
09 dilaporkan bila tidak ada file untuk diunggah
Upload Sebagian atau Tidak Dapat Menulis ke Disk
Anda akan mendapatkan
2
_10 jika file hanya dapat diunggah sebagian dan
2
11 jika file tidak dapat ditulis ke disk
Ekstensi PHP Menghentikan Pengunggahan File
Terkadang, Anda akan mendapatkan error
2
_12 karena beberapa ekstensi menghentikan upload file. Yang ini akan membutuhkan penyelidikan lebih lanjut oleh Anda untuk mengetahui ekstensi mana yang menyebabkan masalah
Ini kode lengkap dari upload. php yang akan menampilkan pesan kepada pengguna di halaman unggah jika berhasil atau gagal mengunggah. Informasi tentang berhasil atau tidaknya unggahan disimpan di
2
13
1
; Whether to allow HTTP file uploads.
6
2
1
57
3
4
1
60
5
1
62
echo php_ini_loaded_file(); ?>
1
1
41
echo php_ini_loaded_file(); ?>
3
1
66
echo php_ini_loaded_file(); ?>
4
1
68
echo php_ini_loaded_file(); ?>
6
1
70
echo php_ini_loaded_file(); ?>
8
1
72
echo php_ini_loaded_file(); ?>
9
1
74
1
1
1
76
1
3
1
78
1
4
1
80
1
6
1
82
1
8
1
9
1
85
; Whether to allow HTTP file uploads.
1
1
87
; Whether to allow HTTP file uploads.
3
4
3
1
90
4
5
1
92
4
7
4
8
1
95
; Temporary directory for HTTP uploaded files.
0
file_uploads = On
8
; Temporary directory for HTTP uploaded files.
2
1
99
; Temporary directory for HTTP uploaded files.
4
; Whether to allow HTTP file uploads.
01
echo php_ini_loaded_file(); ?>
34
; Whether to allow HTTP file uploads.
03
echo php_ini_loaded_file(); ?>
36
echo php_ini_loaded_file(); ?>
38
; Whether to allow HTTP file uploads.
06
echo php_ini_loaded_file(); ?>
40
; Whether to allow HTTP file uploads.
08
echo php_ini_loaded_file(); ?>
42
; Whether to allow HTTP file uploads.
10______
Pelajari PHP Dengan Kursus Online Gratis
Hari ini, kita membahas dasar-dasar upload file di PHP. Di paruh pertama artikel, kami membahas berbagai opsi konfigurasi yang perlu ada agar pengunggahan file berfungsi. Kemudian kami melihat contoh dunia nyata yang mendemonstrasikan cara kerja pengunggahan file di PHP
Jika Anda ingin mempelajari PHP lebih lanjut, lihat kursus online gratis kami tentang dasar-dasar PHP
Dalam kursus ini, Anda akan mempelajari dasar-dasar pemrograman PHP. Anda akan mulai dengan dasar-dasarnya, mempelajari cara kerja PHP dan menulis loop dan fungsi PHP sederhana. Kemudian Anda akan membangun kelas pengkodean untuk pemrograman berorientasi objek sederhana (OOP). Sepanjang jalan, Anda akan mempelajari semua keterampilan paling penting untuk menulis aplikasi untuk web. Anda akan mendapatkan kesempatan untuk berlatih menanggapi permintaan GET dan POST, mem-parsing JSON, mengautentikasi pengguna, dan menggunakan database MySQL
Bagaimana cara mengunggah file ke folder lain?
Anda dapat mengunggah file ke folder pribadi atau bersama. Di komputer Anda, pergi ke drive. google. com. Unggah File atau Unggah Folder. Pilih file atau folder yang ingin Anda unggah .
Bagaimana cara mengunggah gambar di PHP dan menyimpannya di database dan folder?
Langkah 1. Buat formulir HTML sederhana. Pada langkah 1, mari buat formulir HTML sederhana. .
Langkah 2. Buat Tabel Database MYSQL. Untuk membuat tabel database, kita perlu menulis kueri mysql. .
Langkah 3. Buat Koneksi MYSQL di PHP. .
Langkah 4. Simpan Gambar di Database menggunakan PHP. .
Langkah 5. KELUARAN. Menampilkan Gambar Dari Database menggunakan PHP
Bagaimana cara mengunggah file ke folder tertentu di laravel?
Cara mengunggah file di DB Dengan folder lokal menggunakan laravel 5. 8 .
Melangkah. 1 Anda harus membuat ini. .
Melangkah. 2 Buka sambutan. .
Melangkah. 3 Lalu pergi ke route/web. .
Melangkah. 4 Kemudian buka tabel database/migration/create_image_uploads_table. php
Melangkah. 5 Kemudian buka pengontrol dan tentukan ini
Melangkah. 6 setelah selesai
Bagaimana cara mengatur jalur file di PHP?
file ini, ikuti langkah berikut. .
Buka php.ini. file ini di editor. .
Tambahkan baris berikut ke php. file ini. Ganti nama pengguna dengan nama pengguna A2 Hosting Anda, dan ganti include_directory dengan nama direktori include. sertakan_path = ". /home/username/include_directory"
Simpan file. Jalur penyertaan sekarang disetel