ComputerenFichier Zorte

PHP: Fichier eropluede bis de Server

Eroflueden Fichier'en per PHP - eng ganz interessant Fall, op déi muss ganz virsiichteg gudden ginn. Iwwert den Internet kann Iech vill Beispiller vun der Ëmsetzung vun Fichier eropluede, mä net all vun hinnen sinn gutt an treffen Sécherheet Reglementer fannen.

Esou Saachen muss enger Conclusioun ze bréngen, och wann et eng laang Zäit hëlt. Wann Dir eng Lück am Code verloossen, da kënnt Är ganze Server kompromettéiert gin.

Sécherheet

Mat PHP Fichier eropluede bis de Server aus relativ liicht gemaach gëtt. De Code ass ganz kuerz an einfach. Just e puer Zeilen. Allerdéngs ass dës Method geféierlech. Vill méi Zäit an Linnen vum Code ewech ze Sécherheet.

D'Gefor ass, dass, wann Dir Inspektiounen net do, all Stuerm hir Scripten op äre Server eropluede konnt. An dësem Fall ass et voll Accès hunn. Hien kann maachen wat hien wëll:

  • läschen d'Datebank;
  • läschen Fichieren Siten;
  • änneren Fichieren Siten;
  • Artikel ad op Är Websäit;
  • download Viren;
  • Viruleedung all Benotzer op hire Siten;
  • a vill aner Saachen, kommt Stuerm ze vergiessen.

Dir sollt ëmmer kucken, datt eng Datei fir de Benotzer ze download Versich. wann dir Biller eropluede nëmmen zum Beispill, ass et néideg, fir z'iwwerpréiwen, ob de Fichier präziist en Bild ass. Soss, wäert Dir eppes download.

Genee wéi kënnen ze realiséieren, ass et dës Distanz, mat der direkter Ënnersichung Schrëft ginn fir Fichieren eropzelueden.

Schafen eng PHP Form

Fichier eropluede Form ass ganz einfach. Vermësst der Individuelles Knäppchen a lued Knäppercher.

Beschreiwt wéi ze schafen Formen wäert net, well et einfach d'. Weider Uweisungen beweis dass Dir schonn déi elementar Konzepter vun HTML hun (soss hätt Dir net fir Informatiounen iwwert eroflueden op PHP ginn sicht).

Awer drun, dass d'Daten a Form musst Dir d'enctype Spezialfäegkeeten Foto.

Soss, wäert Daten iwwert Fichier Handler net iwwerdroen gin.

Wéi sollen se schaffen?

Wann Dir op der Individuelles Knäppchen klickt sollt Dir eng Këscht gesinn wou e Fichier ze wielen gefrot.

Duerno wäert et néideg e Wee ze kréien, wou de Fichier etabléiert ass.

Wann de Wee schéngen net, Leeschtunge nees d'Aktioun.

No Dir kënnt op der download Fichier Handler all Informatioune ginn.

Zum Beispill, kënnt dir d'Linn schreiwen dass Staaten datt de Fichier ass "sou an sou" den Numm fir de "sou an sou" Dossier erfollegräich eropgelueden ginn ass. Natierlech, gëtt de Fichier Numm ëmmer anescht entscheet ginn.

Typesch, ass dës Informatiounen ze firën Code benotzt. Sou ass et méiglech, fir z'iwwerpréiwen, ob d'Daten iwwerdroen ass a schreift am gewënschte Dossier geschéien. Dat ass, och de Fichier Numm ass net uginn. Well dës zousätzlech Informatiounen, déi de Benotzer brauch net.

Et mécht Sënn fir Wasserstoff den Numm nëmmen, wann de Benotzer MÉI Fichieren Downloads. Esou ass de Fall, e bësse weider betruecht. Loosst d'net Supporter vun eis kréien.

Upassung

Am PHP Fichier eropluede bis de Server setzt verschidden Astellungen, déi am php.ini Fichier gemaach ginn soll. Dëse Fichier ass vill vun Astellungen. Si all mir brauchen nët. Mir sinn interesséiert dräi Zeilen: file_uploads, upload_tmp_dir an upload_max_filesize.

Weg drun, dass dës Astellungen all är Siten op de Server Afloss ginn, net just all eent. Dofir, déi maximal Gréisst op de Fait Basis ze setzen, datt Dir Benotzer opbauen muss. Et ass net ze Formatioun ze grouss recommandéiert.

Wann Dir de Wäerter an dëse Parameteren änneren, muss Dir de Server ze Reouverture. Soss d'Astellungen net Effekt huelen, nodeems se an der Zäit vun der Server opbauen liesen.

Dir kënnt dat op de Server vun ëmklammen via SSH an der erweidert maachen. Einfach gitt de Kommando Service httpd Reouverture, an da wäerten d'Astellunge Effekt huelen.

Aner Method - eng Reouverture duerch Police-Rot oder duerch Type Rot Provider.

vill Fichier

Am PHP Fichier upload ass vun der vill $ _FILES gemaach. Et enthält all d'Informatiounen iwwert de Fichieren datt mir erofzelueden.

Ze gesinn wat Informatioun ass an der vill aus, genuch am Fichier Handler ze schreiwen folgenden.

Wielt all Fichier a klickt "Eroplueden". Op der Handler Säit gëtt d'Informatiounen Haaptsäit datt am $ _FILES gespäichert ass. D'Variabel ass ganz mat Kapital Bréiwer geschriwwen. PHP - eng Sprooch-senisitive.

Wéi Dir gesitt kann, huet an dësem vill vill vun Felder. All vun hinnen si fir eis wichteg. Déi éischt Plaz ass de Fichier Numm a Form an deem et iwwert Äre Computer benotzt gëtt.

D'Typ KOLONN Fichier Typ. Tmp_name Terrain entsprécht den Numm vun der temporär Datei. Nom Enn vun der Schrëft wäert geläscht ginn.

De Feeler Terrain enthält eng Feeler Code. Dëst war e bësse weider. Gréisst - d'Gréisst vun Bytes.

Feeler

Duerchgefouert duerch d'PHP Fichier upload ass ëmmer vun engem Fehler Code begleet. E Feeler Message am "Fehler" koum. D'Screenshot Feeler ass null.

Betruecht de Wäert vun all de Feeler:

Et war virun iwwer de Parameter gesot, datt am üblechen HTML uginn kann.

Hei ass e Beispill Form der Datei ze erofzelueden, déi eng Limit vun der Quantitéit vun der eropgelueden Datei bedeit.

PHP: Fichier eropluede Schrëft

Wéi all an Praxis duerchgefouert? Am PHP existeiert Fichier eropluede Kopie Kommando. Wann Dir interesséiert an der Fro vun gi wéi eng Datei ze erofzelueden, ass d'Äntwert einfach copy-, déi zwee Parameteren benotzt - d'Quell Fichier an der Destinatioun Fichier.

Mä, wéi virun Dënschdeg, kann et net fir Sécherheet Grënn limitéiert ginn. Zum Beispill, kucken aus wat fir Fichier mir Schëff, Dir den Terrain Typ am vill $ _FILES benotze kann. Éischt, mer elo mat Inspektioun vill, an dann un déi voll Schrëft plënneren op

Loosst d'soen Iech Benotzer ze erlaben wëllen eng Foto mat enger Opléisung vun nëmmen GIF, Name oder PNG doranner. Sot et esou kann.

wann ($ _ Fichieren [ "file_upload"] [ "Typ"]! = "Bild / GIF") {
"GIF-Dateien eroflueden nëmmen Entschëllegt, mir ënnerstëtzen" ECHO;
Sortie;
}

Wann Dir all 3 Zorte zu Schëff wëllen, einfach eng zousätzlech Konditioun fir déi aner Zort Bild Foto.

Kopie ass geschitt wéi dëst: Kopie (Bild 1, Bild 2).

An eisem Fall, wou d'Aarbecht vun de PC ze Server ass eroflueden, kënnt Dir maachen

Kopie ($ _ Fichieren [ "file_upload"] [ "tmp_name"], "1.jpg")

Dat ass, gëtt de Fichier mat den Numm 1.jpg kopéiert ginn. Dat ass net ganz richteg. An dësem Fall ass et nëmmen e Beispill. De Fichier Numm ass ëmmer néideg anescht ze uginn, an d'Extensioun uginn, je op de Fichier.

Bestëmmen der Extensioun kann verschidden Weeër ginn. Et all hänkt op der Entwéckler vun erudition. Ee vun de schnellsten Weeër ze (en Ënnerscheed vun tenths vun Sekonnen) bestëmmen der Extensioun - dat ass déi nächst Code.

$ Path_info = pathinfo ($ _ Fichieren [ "photo1"] [ "Numm"]);

$ Baussen = $ path_info [ 'Extensioun "];

D'Variabel $ der Baussen wäerte mir de gewënschte Extensioun Geschäft. Eng Datei Numm kënnt am zoufälleg benotzt md5 virbereet ginn. Wann dir vill vun Fichieren ze download plangen, ass et besser se Classeure zu verschiddene zu Schëff. Sou ass et méi praktesch sinn. Virun allem, wëllt wann Dir un purge.

zu download wäert de Code ginn wéi follegt.

/// No photo

wann ($ _FILES [ "photo1"] [ "tmp_name"] == automatesch)

{

ECHO ( "

Onbekannt Fichier.

Ma href='javascript:history.back()'> Back ... sin ");

Sortie;

}

///. Soen Iech fir all Projet op de Server ass erlaabt grouss Fichier'en op opbauen (Video), mä et sinn nëmme Biller a Benotzer brauchen ze limitéieren

wann (($ _FILES [ "photo1"] [ "Gréisst"]> 1024 * 1024 * 2)

{

?>

déi maximal erlaabt Gréisst vun 2 MB

Ma href='javascript:history.back()'> Back ... sin

Sortie;

}

// Classeure schafen

// engem Dossier vun den aktuelle Mount schafen

wann (! file_exists ( "img /". Datum ( "M")))

{

mkdir ( "img /" Datum ( "M").);

}

// engem Dossier vun den aktuellen Dag schafen

wann (! file_exists ( "img /". Datum ( "M"). "/". Datum ( "d")))

{

mkdir ( "img /" Datum ( "M") "/" Datum ( "d") ...);

}

/// Fichier Extensioun

$ Path_info = pathinfo ($ _ Fichieren [ "photo1"] [ "Numm"]);

$ Baussen = $ path_info [ 'Extensioun "];

/// Dateinumm Generéiere

$ Civile = md5 (Datum ( "YMd"));

wann (Kopie ($ _ Fichieren [ "photo1"] [ "tmp_name"], "img /". Datum ( "M"). "/". Datum ( "d"). "/". $ ID. $ Baussen) )

{

ECHO ( "erfollegräich Fichier eropgelueden");

}

/// keng weider Aktiounen (Entrée an der Datebank, an sou op. N.)

}

MÉI Fichieren

Eroplueden MÉI Fichier'en (PHP) existeiert vun heescht vun zousätzleche Felder a Form.

Dës Method ass net ganz gutt, well se d'Zuel vu Fichieren ze download Grenzen. Ausserdeem, ass et schlecht Form an programméiere considéréiert. Probéieren alles dynamesch ze maachen.

Déi ideal Optioun - et ass e Choix vun enger grousser Zuel vu Fichieren op eemol vun engem eenzege Knäppchen pressen.

Maachen dëst, schafen eng Form wéi dëse Code.

Bedenkt datt d'MÉI Zousätzlech vum Wuert, an den Numm ass als vill entscheet []. An dësem Fall, wäert $ _FILES vill liicht anescht ginn. Dir wäert eng Partie vun der Partie Problemer kréien.

Fir Test kann erëm de var_dump benotzen ($ _ Fichieren);

All Är Fichieren gëtt am vill esou gesat ginn:

  1. $ _FILES [ "file1"] [ "Numm"] [0]
  2. $ _FILES [ "file1"] [ "Numm"] [1]
  3. An sou op.

An parentheses ass de Fichier Zuel am vill geschriwwen. Zielen vun null. Mir onsuergsam an déi selwecht Art a Weis, just den Zyklus froen an déi uewen beschriwwen-Code um Enn vun der Index kontaktéiert iwwerdribblen [$ ech].

$ Ech = 0;

iwwerdeems ($ _FILES [ "file1"] [ "Numm"] [$ ech] <> '')

{

/// Paste der uewen Code

}

Also, wäert Dir duerch eng PHP Fichier eropluede bis de Server an engem Zyklus ouni onnéideg Verwiesslungen vum Code geschéie muss, wéi meeschtens de Fall ass wann een der Versioun mat engem statesch Zuel vu Fichieren (lescht Foto) benotzen.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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