Cara menggunakan ukuran variabel maksimum php

Pada artikel ini, saya akan menjelaskan dasar-dasar mengunggah 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 terlebih dahulu untuk file yang berhasil diunggah. Pada bagian ini, kita akan membahas setiap opsi penting yang terkait dengan mengunggah file PHP. Opsi ini dapat dikonfigurasi di php. ini

Jika Anda tidak yakin di mana menemukan php. ini adalah Anda, Anda dapat menggunakan

<?php echo php_ini_loaded_file(); ?>
_61 untuk menemukannya. Cukup buat file PHP di server Anda dengan baris berikut, dan buka dari browser

1
<?php echo php_ini_loaded_file(); ?>

Berikut adalah 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
<?php echo php_ini_loaded_file(); ?>
0
<?php echo php_ini_loaded_file(); ?>
1
<?php echo php_ini_loaded_file(); ?>
2
<?php echo php_ini_loaded_file(); ?>
3
<?php echo php_ini_loaded_file(); ?>
4
<?php echo php_ini_loaded_file(); ?>
5
<?php echo php_ini_loaded_file(); ?>
6
<?php echo php_ini_loaded_file(); ?>
7
<?php echo php_ini_loaded_file(); ?>
8
<?php 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

<?php echo php_ini_loaded_file(); ?>
_62

Nilai arahan

<?php echo php_ini_loaded_file(); ?>
_62 harus disetel ke
<?php echo php_ini_loaded_file(); ?>
64 untuk mengaktifkan unggahan file. Nilai default dari arahan ini adalah
<?php echo php_ini_loaded_file(); ?>
64

<?php echo php_ini_loaded_file(); ?>
_66

Direktif

<?php echo php_ini_loaded_file(); ?>
67 memungkinkan Anda mengonfigurasi ukuran maksimum yang diunggah. Secara default, ini disetel ke
<?php echo php_ini_loaded_file(); ?>
_68 (dua megabita), dan Anda dapat mengganti setelan ini menggunakan file. htaccess juga. Dua megabyte tidak banyak menurut standar saat ini, jadi Anda mungkin harus meningkatkannya. Jika Anda mendapatkan kesalahan bahwa file melebihi
<?php echo php_ini_loaded_file(); ?>
66 saat Anda mencoba mengunggah file, Anda perlu menambah nilai ini. Jika Anda melakukannya, pastikan juga untuk meningkatkan
<?php echo php_ini_loaded_file(); ?>
70 (lihat di bawah)

<?php echo php_ini_loaded_file(); ?>
_71

Menentukan direktori sementara yang akan digunakan untuk menyimpan file yang diunggah. Dalam kebanyakan kasus, Anda tidak perlu khawatir tentang pengaturan ini. Jika Anda tidak mengaturnya, direktori temp default sistem akan digunakan

<?php echo php_ini_loaded_file(); ?>
_70

Direktif

<?php echo php_ini_loaded_file(); ?>
70 memungkinkan Anda mengonfigurasi ukuran maksimum data POST. Karena file diunggah dengan permintaan POST, nilai ini harus lebih besar dari yang Anda tetapkan untuk perintah
<?php echo php_ini_loaded_file(); ?>
66. Misalnya, jika
<?php echo php_ini_loaded_file(); ?>
_66 adalah
<?php echo php_ini_loaded_file(); ?>
76 (16 megabita), Anda mungkin ingin menyetel
<?php echo php_ini_loaded_file(); ?>
70 ke
<?php echo php_ini_loaded_file(); ?>
78

<?php echo php_ini_loaded_file(); ?>
_79

Ini memungkinkan Anda untuk mengatur jumlah maksimum file yang dapat diunggah sekaligus. Standarnya adalah

<?php echo php_ini_loaded_file(); ?>
_80, jumlah yang wajar

<?php echo php_ini_loaded_file(); ?>
_81

Ini adalah jumlah maksimum skrip kedua yang diizinkan untuk mengurai data masukan. Anda harus mengaturnya ke nilai yang wajar jika Anda ingin mengunggah file besar.

<?php echo php_ini_loaded_file(); ?>
82 (60 detik) adalah nilai yang baik untuk sebagian besar aplikasi

<?php echo php_ini_loaded_file(); ?>
_83

Directivef

<?php echo php_ini_loaded_file(); ?>
_83 menunjukkan jumlah maksimum memori yang dapat digunakan oleh skrip. Jika Anda mengalami masalah saat mengunggah file besar, Anda harus memastikan bahwa nilai arahan ini lebih besar dari yang Anda tetapkan untuk arahan
<?php echo php_ini_loaded_file(); ?>
70. Nilai defaultnya adalah
<?php echo php_ini_loaded_file(); ?>
_86 (128 megabyte), jadi kecuali Anda memiliki
<?php echo php_ini_loaded_file(); ?>
70 dan
<?php echo php_ini_loaded_file(); ?>
66 yang sangat besar, Anda tidak perlu khawatir tentang ini

<?php echo php_ini_loaded_file(); ?>
_89

Jumlah maksimum detik yang diizinkan untuk menjalankan skrip. Jika Anda mengalami masalah saat mengunggah file besar, Anda dapat mempertimbangkan untuk meningkatkan nilai ini.

<?php echo php_ini_loaded_file(); ?>
_90 (30 detik) seharusnya berfungsi dengan baik untuk sebagian besar aplikasi

Sekarang mari kita buat contoh nyata untuk mendemonstrasikan pengunggahan file dalam PHP

Buat Formulir HTML

Setelah Anda mengonfigurasi pengaturan PHP, Anda siap untuk mencoba kemampuan mengunggah file PHP

Repositori 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 file. php berisi kode yang bertanggung jawab untuk menampilkan formulir unggah file. Di sisi lain, unggah file. php bertanggung jawab untuk mengunggah file ke server

Selain itu, file akan diunggah di direktori upload_files, jadi Anda perlu memastikan bahwa folder ini ada dan dapat ditulis oleh pengguna

<?php echo php_ini_loaded_file(); ?>
91

Pada bagian ini, kita akan membahas bagian kunci dari file indeks. php

Mari kita lihat file indeks. php 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
<?php echo php_ini_loaded_file(); ?>
1
2
6
<?php echo php_ini_loaded_file(); ?>
3
2
8
<?php echo php_ini_loaded_file(); ?>
4
file_uploads = On
0
<?php echo php_ini_loaded_file(); ?>
6
file_uploads = On
2
<?php echo php_ini_loaded_file(); ?>
8
file_uploads = On
4
<?php 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

Meskipun mungkin terlihat seperti bentuk PHP biasa, ada perbedaan penting dalam nilai atribut

<?php echo php_ini_loaded_file(); ?>
92 dari tag
<?php echo php_ini_loaded_file(); ?>
93. Ini perlu disetel ke
<?php echo php_ini_loaded_file(); ?>
94 karena formulir berisi bidang file

Atribut

<?php echo php_ini_loaded_file(); ?>
_92 menentukan jenis pengkodean yang harus digunakan saat formulir dikirimkan, dan salah satu dari tiga nilai berikut diperlukan

  • <?php echo php_ini_loaded_file(); ?>
    
    _96. ini adalah nilai default ketika Anda tidak menetapkan nilai atribut
    <?php echo php_ini_loaded_file(); ?>
    
    92 secara eksplisit. Dalam hal ini, karakter dikodekan sebelum dikirim ke server. Jika Anda tidak memiliki bidang file dalam formulir Anda, Anda harus menggunakan nilai ini untuk atribut
    <?php echo php_ini_loaded_file(); ?>
    
    92
  • <?php echo php_ini_loaded_file(); ?>
    
    _94. Saat Anda menggunakan nilai
    <?php echo php_ini_loaded_file(); ?>
    
    _94 untuk atribut
    <?php echo php_ini_loaded_file(); ?>
    
    92, ini memungkinkan Anda mengunggah file menggunakan metode POST. Pastikan juga bahwa karakter tidak dikodekan saat formulir dikirimkan
  • 1
    _02. Ini umumnya tidak digunakan. Dengan pengaturan ini, data dikirim tanpa kode

Selanjutnya, kami menampilkan bidang file, yang memungkinkan Anda memilih file dari komputer Anda

1
; Temporary directory for HTTP uploaded files.
7

Selain itu, kami telah menampilkan pesan di bagian atas formulir. Pesan ini menunjukkan status unggahan file, dan itu akan diatur dalam variabel sesi dengan skrip unggahan. php. Kita 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
<?php echo php_ini_loaded_file(); ?>
1
3
4
<?php echo php_ini_loaded_file(); ?>
3
2
0

Sehingga merangkum file indeks. php. Di bagian selanjutnya, kita akan melihat cara menangani file yang diunggah di sisi server

Membuat Logika Pengunggahan

Di bagian sebelumnya, kami membuat formulir HTML yang ditampilkan di sisi klien dan memungkinkan Anda untuk mengunggah file dari komputer Anda. Pada bagian ini, kita akan melihat mitra sisi server yang memungkinkan Anda menangani file yang diunggah

Ekstrak kode dari file yang diunggah. php di GitHub. Kami akan membahas bagian penting dari file tersebut

Dalam file yang diunggah. php, kami telah memeriksa apakah ini permintaan POST yang valid

1
<?php echo php_ini_loaded_file(); ?>
03
2
<?php echo php_ini_loaded_file(); ?>
05
3
<?php echo php_ini_loaded_file(); ?>
07

Di PHP, saat file diunggah, variabel superglobal

1
03 diisi dengan semua informasi tentang file yang diunggah. Ini diinisialisasi sebagai larik dan dapat berisi informasi berikut agar unggahan file berhasil

  • 1
    _04. Jalur sementara tempat file diunggah disimpan dalam variabel ini
  • 1
    _05. Nama sebenarnya dari file tersebut disimpan dalam variabel ini
  • ukuran. menunjukkan ukuran file unggahan dalam byte
  • 1
    _06. berisi jenis unggahan file pantomim
  • 1
    _07. 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 menggunakan konstanta
    1
    08

Setelah memvalidasi permintaan POST, kami memeriksa apakah unggahan file berhasil

1
<?php echo php_ini_loaded_file(); ?>
09
2
<?php echo php_ini_loaded_file(); ?>
05
3
<?php echo php_ini_loaded_file(); ?>
07

Anda dapat melihat bahwa variabel

1
_03 adalah array multi-dimensi, elemen pertama adalah bidang nama file, dan elemen kedua memiliki 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
<?php echo php_ini_loaded_file(); ?>
15
2
<?php echo php_ini_loaded_file(); ?>
17
3
<?php echo php_ini_loaded_file(); ?>
19
4
<?php echo php_ini_loaded_file(); ?>
21
5
<?php echo php_ini_loaded_file(); ?>
23
<?php echo php_ini_loaded_file(); ?>
1
<?php echo php_ini_loaded_file(); ?>
25
<?php echo php_ini_loaded_file(); ?>
3________0______27

Dalam cuplikan di atas, kami juga menemukan ekstensi file yang diunggah dan menyimpannya di variabel

1
10

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
<?php echo php_ini_loaded_file(); ?>
_29

Sangat penting bagi Anda untuk membatasi jenis file yang dapat diunggah ke ekstensi tertentu dan tidak mengizinkan semuanya menggunakan formulir unggahan. Kami telah melakukan ini dengan memeriksa ekstensi file yang diunggah dengan serangkaian ekstensi yang ingin kami izinkan untuk diunggah

1
<?php echo php_ini_loaded_file(); ?>
31
2
<?php echo php_ini_loaded_file(); ?>
33
3
<?php echo php_ini_loaded_file(); ?>
05
4
<?php echo php_ini_loaded_file(); ?>
07

Terakhir, kami menggunakan fungsi

1
_11 untuk memindahkan file yang diunggah ke lokasi tertentu pilihan kami

1
<?php echo php_ini_loaded_file(); ?>
39
2
<?php echo php_ini_loaded_file(); ?>
41
3
<?php echo php_ini_loaded_file(); ?>
43
4
5
<?php echo php_ini_loaded_file(); ?>
46
<?php echo php_ini_loaded_file(); ?>
1
<?php echo php_ini_loaded_file(); ?>
48
<?php echo php_ini_loaded_file(); ?>
3
<?php echo php_ini_loaded_file(); ?>
50
<?php echo php_ini_loaded_file(); ?>
4
<?php echo php_ini_loaded_file(); ?>
07
<?php echo php_ini_loaded_file(); ?>
6
<?php echo php_ini_loaded_file(); ?>
54
<?php echo php_ini_loaded_file(); ?>
8
<?php echo php_ini_loaded_file(); ?>
48
<?php echo php_ini_loaded_file(); ?>
9
<?php echo php_ini_loaded_file(); ?>
58________0______11_______

Fungsi

1
_11 membutuhkan dua argumen. Argumen pertama adalah nama file dari file yang diunggah, dan argumen kedua adalah jalur tujuan tempat Anda ingin memindahkan file

Terakhir, kami mengarahkan pengguna ke file indeks. php. Selain itu, kami menyetel pesan yang sesuai dalam variabel sesi, yang akan ditampilkan kepada pengguna setelah pengalihan dalam file indeks. php

Bagaimana Semuanya Bekerja Bersama

Jangan lupa untuk membuat direktori upload_files dan membuatnya dapat ditulis oleh pengguna web-server. Selanjutnya, lanjutkan dan jalankan file indeks. php, yang seharusnya menampilkan formulir pengunggahan file yang terlihat seperti ini

Cara menggunakan ukuran variabel maksimum php
Cara menggunakan ukuran variabel maksimum php
Cara menggunakan ukuran variabel maksimum php

Klik tombol Browse - yang akan membuka kotak dialog yang memungkinkan Anda memilih file dari komputer Anda. Pilih file dengan salah satu ekstensi yang diizinkan 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 upload_files. Anda juga dapat mencoba mengunggah file lain dengan ekstensi yang tidak diizinkan, dan periksa apakah skrip kami mencegah unggahan tersebut

Kesimpulan

Hari ini, kita membahas dasar-dasar mengunggah file dalam PHP. Di paruh pertama artikel, kami membahas berbagai opsi konfigurasi yang harus ada agar unggahan file berfungsi. Kemudian kita melihat contoh dunia nyata yang menunjukkan cara kerja pengunggahan file di PHP

Saya harap Anda menikmati artikel ini, dan jangan ragu untuk memposting pertanyaan dan saran Anda di bawah ini