PHP handleiding

PHP TUIS PHP Inleiding PHP installeer PHP sintaksis PHP opmerkings PHP veranderlikes PHP Echo / Druk PHP datatipes PHP Strings PHP-nommers PHP Wiskunde PHP konstante PHP-operateurs PHP As...Anders...Elseif PHP skakelaar PHP-lusse PHP funksies PHP-skikkings PHP Superglobals PHP RegEx

PHP- vorms

PHP-vormhantering PHP-vorm validering PHP-vorm word vereis PHP-vorm URL/e-pos PHP-vorm voltooi

PHP Gevorderd

PHP datum en tyd PHP sluit in PHP-lêerhantering PHP-lêer oop/lees PHP-lêer skep/skryf PHP-lêer oplaai PHP-koekies PHP-sessies PHP filters PHP-filters Gevorderd PHP-terugbelfunksies PHP JSON PHP-uitsonderings

PHP OOP

PHP Wat is OOP PHP Klasse/Objekte PHP Konstrukteur PHP vernietiger PHP Toegangswysigers PHP erfenis PHP konstante PHP Abstrakte Klasse PHP-koppelvlakke PHP eienskappe PHP statiese metodes PHP Statiese Eienskappe PHP naamruimtes PHP Iterables

MySQL- databasis

MySQL-databasis MySQL Connect MySQL Skep DB MySQL Skep tabel MySQL Voeg data in MySQL Kry Laaste ID MySQL Voeg veelvuldige in MySQL voorberei MySQL Kies Data MySQL Waar MySQL Bestel deur MySQL verwyder data MySQL-opdateringsdata MySQL-limietdata

PHP XML

PHP XML-ontleders PHP SimpleXML-ontleder PHP SimpleXML - Kry PHP XML Expat PHP XML DOM

PHP - AJAX

AJAX Intro AJAX PHP AJAX-databasis AJAX XML AJAX Live Search AJAX-peiling

PHP voorbeelde

PHP voorbeelde PHP samesteller PHP vasvra PHP Oefeninge PHP-sertifikaat

PHP- verwysing

PHP Oorsig PHP Skikking PHP-kalender PHP datum PHP gids PHP fout PHP-uitsondering PHP lêerstelsel PHP filter PHP FTP PHP JSON PHP sleutelwoorde PHP Libxml PHP-pos PHP Wiskunde PHP Diverse PHP MySQLi PHP-netwerk PHP-uitsetbeheer PHP RegEx PHP SimpleXML PHP-stroom PHP-string PHP veranderlike hantering PHP XML-ontleder PHP zip PHP Tydsones

PHP- lêer oplaai


Met PHP is dit maklik om lêers na die bediener op te laai.

Gevaar kom egter met gemak, so wees altyd versigtig wanneer jy lêeroplaaie toelaat!


Stel die "php.ini"-lêer op

Maak eers seker dat PHP opgestel is om lêeroplaaie toe te laat.

Soek in jou "php.ini"-lêer vir die file_uploadsaanwysing en stel dit op Aan:

file_uploads = On

Skep die HTML-vorm

Skep dan 'n HTML-vorm wat gebruikers toelaat om die prentlêer te kies wat hulle wil oplaai:

<!DOCTYPE html>
<html>
<body>

<form action="upload.php" method="post" enctype="multipart/form-data">
  Select image to upload:
  <input type="file" name="fileToUpload" id="fileToUpload">
  <input type="submit" value="Upload Image" name="submit">
</form>

</body>
</html>

Sommige reëls om te volg vir die HTML-vorm hierbo:

  • Maak seker dat die vorm method="post" gebruik
  • Die vorm benodig ook die volgende kenmerk: enctype="multipart/form-data". Dit spesifiseer watter inhoudtipe om te gebruik wanneer die vorm ingedien word

Sonder die vereistes hierbo sal die lêeroplaai nie werk nie.

Ander dinge om op te let:

  • Die type="file"-kenmerk van die <input>-merker wys die invoerveld as 'n lêerkieskontrole, met 'n "Browse"-knoppie langs die invoerkontrole

Die vorm hierbo stuur data na 'n lêer genaamd "upload.php", wat ons volgende sal skep.



Skep die oplaai lêer PHP Script

Die "upload.php" lêer bevat die kode vir die oplaai van 'n lêer:

<?php
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
// Check if image file is a actual image or fake image
if(isset($_POST["submit"])) {
  $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
  if($check !== false) {
    echo "File is an image - " . $check["mime"] . ".";
    $uploadOk = 1;
  } else {
    echo "File is not an image.";
    $uploadOk = 0;
  }
}
?>

PHP script verduidelik:

  • $target_dir = "oplaaie/" - spesifiseer die gids waar die lêer geplaas gaan word
  • $target_file spesifiseer die pad van die lêer wat opgelaai moet word
  • $uploadOk=1 is nog nie gebruik nie (sal later gebruik word)
  • $imageFileType hou die lêeruitbreiding van die lêer (in kleinletters)
  • Kyk dan of die beeldlêer 'n werklike beeld of 'n vals beeld is

Let wel: Jy sal 'n nuwe gids genaamd "uploads" moet skep in die gids waar die "upload.php"-lêer is. Die opgelaaide lêers sal daar gestoor word.


Kyk of lêer reeds bestaan

Nou kan ons 'n paar beperkings byvoeg.

Eerstens sal ons kyk of die lêer reeds in die "oplaaie"-lêergids bestaan. As dit wel gebeur, word 'n foutboodskap vertoon, en $uploadOk is op 0 gestel:

// Check if file already exists
if (file_exists($target_file)) {
  echo "Sorry, file already exists.";
  $uploadOk = 0;
}

Beperk lêergrootte

Die lêerinvoerveld in ons HTML-vorm hierbo word "fileToUpload" genoem.

Nou wil ons die grootte van die lêer nagaan. As die lêer groter as 500KB is, word 'n foutboodskap vertoon, en $uploadOk is op 0 gestel:

// Check file size
if ($_FILES["fileToUpload"]["size"] > 500000) {
  echo "Sorry, your file is too large.";
  $uploadOk = 0;
}

Beperk lêertipe

Die kode hieronder laat gebruikers net toe om JPG-, JPEG-, PNG- en GIF-lêers op te laai. Alle ander lêertipes gee 'n foutboodskap voordat $uploadOk op 0 gestel word:

// Allow certain file formats
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
  echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
  $uploadOk = 0;
}

Voltooi PHP-lêer oplaai

Die volledige "upload.php"-lêer lyk nou so:

<?php
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));

// Check if image file is a actual image or fake image
if(isset($_POST["submit"])) {
  $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
  if($check !== false) {
    echo "File is an image - " . $check["mime"] . ".";
    $uploadOk = 1;
  } else {
    echo "File is not an image.";
    $uploadOk = 0;
  }
}

// Check if file already exists
if (file_exists($target_file)) {
  echo "Sorry, file already exists.";
  $uploadOk = 0;
}

// Check file size
if ($_FILES["fileToUpload"]["size"] > 500000) {
  echo "Sorry, your file is too large.";
  $uploadOk = 0;
}

// Allow certain file formats
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
  echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
  $uploadOk = 0;
}

// Check if $uploadOk is set to 0 by an error
if ($uploadOk == 0) {
  echo "Sorry, your file was not uploaded.";
// if everything is ok, try to upload file
} else {
  if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
    echo "The file ". htmlspecialchars( basename( $_FILES["fileToUpload"]["name"])). " has been uploaded.";
  } else {
    echo "Sorry, there was an error uploading your file.";
  }
}
?>

Voltooi PHP-lêerstelselverwysing

Vir 'n volledige verwysing van lêerstelselfunksies, gaan na ons volledige PHP-lêerstelselverwysing .