KomputerJenis file

PHP: file unggah ka server

Ngundeur file via PHP - a bisi pisan metot, nu kudu ditilik taliti pisan. Di Internet bisa manggihan sababaraha conto palaksanaan unggah berkas, tapi henteu kabeh aya ti antarana anu alus tur papanggih peraturan kaamanan.

hal saperti kudu dibawa ka Kacindekan, sanajan waktu nu diperlukeun lila. Lamun ninggalkeun gap di kode, teras sakabéh server Anjeun bisa compromised.

kasalametan

Kalawan PHP file unggah ka server dilumangsungkeun rada gampang. Kode The pisan pondok tur basajan. Ngan sababaraha garis. Sanajan kitu, padika ieu téh bahaya. Leuwih waktos tur garis kode jauh ka kaamanan.

bahaya teh nya eta, lamun henteu Citatah, sagala lawan bisa unggah Aksara maranéhanana dina server Anjeun. Dina hal ieu, éta kudu aksés pinuh. Anjeunna tiasa ngalakukeun naon anjeunna hayang:

  • ngahapus pangkalan data;
  • ngahapus koropak loka;
  • ngaropéa file loka;
  • nambahkeun ad anjeun ka ramatloka anjeun;
  • ngundeur virus;
  • alihan sakabeh pamaké on situs maranéhanana;
  • tur loba hal séjén nu datang ka kapikiran lawan.

Anjeun kudu salawasna pariksa nu nyoba pikeun ngundeur file pikeun pamaké. Contona, lamun unggah gambar wungkul, perlu pikeun pariksa yen file mangrupa gambar akurat. Upami teu kitu, anjeun bakal diundeur nanaon.

Persis cara nerapkeun verifikasi, mangka baris ditémbongkeun, jeung Aksara ujian langsung pikeun ngamuat koropak.

Nyieun hiji formulir PHP

file formulir unggah basajan pisan. Leungit tombol ngotéktak teras unggah tombol.

Ngajelaskeun kumaha carana nyieun bentuk moal, sabab éta gampang. parentah salajengna nganggap yén anjeun geus boga konsep dasar HTML (disebutkeun Anjeun bakal teu pilari inpo tentang ngundeur dina PHP).

Tapi dicatet yén data dina wangun nu peryogi pikeun nambahkeun éta atribut enctype.

Upami teu kitu, data dina file Handler moal dikirimkeun.

Kumaha sakuduna dianggo?

Lamun anjeun klik tombol Taliti Anjeun kudu ningali hiji kotak mana dipenta pikeun milih file a.

Sanggeus éta eta bakal diperlukeun pikeun nampa hiji jalur mana file ieu lokasina.

Mun jalur teu némbongan, nedunan Peta deui.

Saatos ngaklik dina Handler download file tiasa masihan informasi nanaon.

Contona, Anjeun bisa nulis garis nu nyebutkeun yén file nyaeta "kitu jeung kitu" nami geus hasil diunggah kana folder "sapertos na sapertos". Tangtu, nami file bakal dibikeun salawasna béda.

Ilaharna, informasi ieu dipaké pikeun kode debug. Kituna kasebut nyaéta dimungkinkeun pikeun pariksa yén data téh dikirimkeun sarta nyerat lumangsung dina diréktori dipikahoyong. Anu, sanajan nami file henteu dituduhkeun. Kusabab informasi tambahan ieu nu pamaké teu perlu.

Ngajadikeun rasa ka output nami wungkul lamun pamaké undeuran sababaraha payil. Misalna hal, mertimbangkeun saeutik salajengna. Hayu urang teu meunang dihareupeun sorangan.

carana ngatur

Dina file PHP unggah ka server butuh setélan nu tangtu, nu kudu dipigawé dina file php.ini. Ieu koropak ngandung loba pangaturan. Éta sakabéh urang teu kedah. Urang museurkeun tilu garis: file_uploads, upload_tmp_dir na upload_max_filesize.

Perhatikeun yén setelan ieu bakal mangaruhan sakabéh situs anjeun dina server, teu ngan hiji wae. Kituna, pikeun ngeset ukuran maksimum dumasar kana kanyataan yén anjeun bakal kudu muka pamaké. Ieu henteu dianjurkeun pikeun ngeset badag teuing.

Sakali anjeun ngarobah nilai dina parameter ieu, anjeun kudu ngabalikan deui server. Upami setelan moal mawa pangaruh, sabab maca dina waktu beban server.

Anjeun tiasa ngalakukeun ieu konsol nu ku cara ngahubungkeun via SSH mun server. Kantun tuliskeun jasa paréntah httpd balikan deui, lajeng setélan bakal mawa pangaruh.

Metoda sejen - a balikan deui liwat ISP-panel atanapi liwat panyadia panel tagihan.

file Asép Sunandar Sunarya

Dina PHP unggah berkas geus rengse ku Asép Sunandar Sunarya $ _FILES. Ieu ngandung sagala informasi ngeunaan file nu urang undeur.

Ningali informasi naon anu dipiboga ku Asép Sunandar Sunarya, cukup keur nulis dina Handler file di handap.

Pilih file sagala teras klik "Unggah". Dina kaca Handler bakal mintonkeun informasi anu disimpen dina $ _FILES. variabel anu ditulis sagemblengna kalawan huruf kapital. PHP - basa-sensitip.

Sakumaha anjeun tiasa tingali, dina Asép Sunandar Sunarya ieu ngabogaan loba widang. Kabéh aya ti antarana anu penting pikeun kami. Médan mimiti ngandung nami file dina formulir nu biasa digunakeun dina komputer Anjeun.

Jinis kolom dieusian tipe file. médan Tmp_name pakait jeung ngaran file samentara. Sanggeus ahir naskah bakal dihapus.

Médan kasalahan ngandung hiji kode kasalahan. Ieu saeutik salajengna. Ukuran - ukuran dina bait.

kasalahan

Dilumangsungkeun ngaliwatan unggah berkas PHP anu sok dipirig ku hiji kode kasalahan. Talatah kasalahan diasupkeun dina "kasalahan". Kasalahan screenshot nyaeta nol.

Mertimbangkeun nilai sagala kasalahan:

Ieu ceuk luhur ngeunaan parameter nu bisa dieusian dina HTML biasa.

Di dieu ngarupakeun bentuk sampel pikeun ngundeur file, nu nunjukkeun hiji wates tina jumlah tina file diunggah.

PHP: file unggah Aksara

Salaku sadayana dilumangsungkeun dina prakna? Dina PHP file unggah lumangsung salinan paréntah. Mun anjeun resep sual cara ngundeur hiji payil, jawaban geus copy- basajan, nu migunakeun dua parameter - file sumber jeung file tujuan.

Tapi, sakumaha nyatakeun luhur, bisa jadi diwatesan alesan kaamanan. Contona, pariksa kaluar jenis file kami ngilikan, anjeun tiasa nganggo jenis sawah di Asép Sunandar Sunarya $ _FILES. Heula, hayu urang nungkulan inspeksi, lajeng ngaléngkah ka Aksara pinuh

Hayu urang nyebutkeun rék ngijinan pamaké pikeun unggah poto kalawan resolusi ukur GIF, JPEG atanapi PNG. Nunjukkeun eta tiasa kawas ieu.

lamun ($ _ file [ 'file_upload'] [ 'jenis']! = "gambar / GIF") {
bahana "Hampura, urang ngarojong wungkul ngundeur GIF-Payil";
kaluar;
}

Mun rék ngilikan kabeh 3 jenis, kantun nambihan hiji kaayaan tambahan kana tipe séjén gambar.

Niron dipigawé saperti kieu: salinan (gambar 1, gambar 2).

Bisi urang, nalika karya anu ngundeur ti PC pikeun server, Anjeun tiasa ngalakukeun kitu

salinan ($ _ file [ 'file_upload'] [ "tmp_name"], "1.jpg")

Hartina, file bakal disalin ku nami 1.jpg. Ieu teu sagemblengna bener. Dina hal ieu, éta mung conto. Ngaran berkas anu salawasna perlu nangtukeun béda, sarta nangtukeun extension, gumantung kana file.

Nangtukeun extension bisa cara béda. Eta sadayana gumantung kana pamekar ti erudition. Salah sahiji cara panggancangna nepi (béda tina tenths tina detik) nangtukeun extension nu - ieu kodeu salajengna.

$ Path_info = pathinfo ($ _ file [ 'photo1'] [ "Ngaran"]);

$ Ext = $ path_info [ 'extension'];

Variabel $ ext nu urang nyimpen extension dipikahoyong. Hiji ngaran file bisa diatur dina acak maké md5. Lamun rencanana pikeun ngundeur loba payil, eta leuwih hade mun ngilikan eta polder béda. Ku kituna eta bakal leuwih merenah. Dina sababaraha hal, lamun rék kosongna.

pikeun ngundeur aplikasi kode bakal kieu.

/// Jeung poto

lamun ($ _FILES [ 'photo1'] [ 'tmp_name'] == null)

{

bahana ( "

Duka file.

Balik ... ");

kaluar;

}

///. Ucapkeun nuhun sagala proyék on server nu diwenangkeun pikeun muka file badag (video), tapi aya ukur gambar, sarta pamaké kudu ngawatesan

lamun (($ _FILES [ "photo1"] [ "ukuran"]> 1024 * 1024 * 2)

{

?>

nu maksimum diwenangkeun ukuran 2 MB

Balik ...

kaluar;

}

// jieun polder

// nyieun hiji folder sahiji bulan ayeuna

lamun (! file_exists ( "IMG /". titimangsa ( "M")))

{

mkdir ( "IMG /" titimangsa ( "M").);

}

// nyieun hiji folder ngeunaan dinten ayeuna

lamun (! file_exists ( "IMG /". titimangsa ( "M"). "/". titimangsa ( "d")))

{

mkdir ( "IMG /" titimangsa ( "M") "/" titimangsa ( "d") ...);

}

/// extension file

$ Path_info = pathinfo ($ _ file [ 'photo1'] [ "Ngaran"]);

$ Ext = $ path_info [ 'extension'];

/// ngahasilkeun Ngaran koropak

$ Id = md5 (tanggal ( "YMd"));

lamun (salinan ($ _ file [ 'photo1'] [ "tmp_name"], "IMG /". titimangsa ( "M"). "/". titimangsa ( "d"). "/". $ id. $ ext) )

{

bahana ( "file hasil diunggah");

}

/// naon Peta salajengna (Éntri dina database, jeung saterusna. N.)

}

sababaraha payil

Muatkeun sababaraha file (PHP) lumangsung ku cara maké widang tambahan dina formulir.

Metoda ieu moal pohara alus, sakumaha eta watesan jumlah koropak pikeun ngundeur. Leuwih ti éta, éta dianggap formulir bad di programming. Coba mun ngalakukeun sagalana dinamis.

Pilihan dicita - eta mangrupakeun pilihan angka nu gede ngarupakeun file sakaligus ku mencét hiji tombol tunggal.

Jang ngalampahkeun ieu, nyieun bentuk kawas kode ieu.

Catetan yén tambahan sababaraha kecap, sarta ngaran nu dirumuskeun salaku hiji Asép Sunandar Sunarya []. Dina hal ieu, $ _FILES Asép Sunandar Sunarya bakal rada beda. Anjeun bakal meunang hiji Asép Sunandar Sunarya ti Asép Sunandar Sunarya dina.

Pikeun nguji deui tiasa nganggo var_dump ($ _ file);

Sakabéh payil anjeun bakal ditempatkeun di Asép Sunandar Sunarya kawas kieu:

  1. $ _FILES [ "file1"] [ "Ngaran"] [0]
  2. $ _FILES [ "file1"] [ "Ngaran"] [1]
  3. Jeung saterusna.

Dina kurung anu ditulis jumlah file dina Asép Sunandar Sunarya dina. Cacah ti nol. Urang ngubaran eta dina cara nu sarua, ngan menta siklus jeung ku ngahubungan kodeu luhur-ditétélakeun dina tungtung indéks nambahkeun [$ i].

$ I = 0;

bari ($ _FILES [ "file1"] [ "Ngaran"] [$ i] <> '')

{

/// nempelkeun kodeu luhur

}

Ku kituna, anjeun kudu lumangsung ngaliwatan hiji unggah berkas PHP jeung server dina hiji siklus tanpa pengulangan perlu kode, sakumaha biasana masalahna lamun make versi nu ku angka statik koropak (poto panungtungan).

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 su.birmiss.com. Theme powered by WordPress.