ฟอรั่ม | ล่าสุดการพัฒนาเว็บบทเรียน
×

PHP เกี่ยวกับการสอน

PHP บ้าน PHP แนะนำ PHP ติดตั้ง PHP วากยสัมพันธ์ PHP ตัวแปร PHP Echo / พิมพ์ PHP ชนิดข้อมูล PHP เงื่อนไข PHP ค่าคงที่ PHP ผู้ประกอบการ PHP If...Else...Elseif PHP Switch PHP ในขณะที่ลูป PHP สำหรับลูป PHP ฟังก์ชั่น PHP แถว PHP เรียงลำดับอาร์เรย์ PHP Superglobals

PHP การจัดการ

PHP ฟอร์ม การจัดการ PHP ฟอร์ม การตรวจสอบ PHP ฟอร์ม จำเป็นต้องใช้ PHP ฟอร์ม URL/E-mail PHP ฟอร์ม สมบูรณ์

PHP สูง

PHP อาร์เรย์หลายมิติ PHP วันและเวลา PHP ประกอบด้วย PHP ไฟล์ การจัดการ PHP ไฟล์ เปิด / อ่าน PHP ไฟล์ สร้าง / เขียน PHP ไฟล์ อัปโหลด PHP Cookies PHP Sessions PHP ฟิลเตอร์ PHP Filters สูง PHP ผิดพลาด การจัดการ PHP ข้อยกเว้น

MySQL Database

MySQL ฐานข้อมูล MySQL สัมพันธ์ MySQL Create DB MySQL Create ตาราง MySQL Insert Data MySQL รับ ID เข้าครั้งสุดท้าย MySQL ใส่หลาย MySQL Prepared MySQL Select Data MySQL Delete Data MySQL Update Data MySQL Limit Data

PHP - XML

PHP XML parsers PHP SimpleXML Parser PHP SimpleXML - Get PHP XML Expat PHP XML DOM

PHP - AJAX

AJAX แนะนำ AJAX PHP AJAX ฐานข้อมูล AJAX XML AJAX ค้นหาสด AJAX RSS Reader AJAX โพลล์

PHP Examples

PHP ตัวอย่าง PHP ทดสอบ PHP ใบรับรอง

PHP การอ้างอิง

PHP แถว PHP ปฏิทิน PHP วันที่ PHP ไดเรกทอรี PHP ผิดพลาด PHP ระบบแฟ้ม PHP กรอง PHP FTP PHP HTTP PHP Libxml PHP จดหมาย PHP คณิตศาสตร์ PHP อื่น ๆ PHP MySQLi PHP SimpleXML PHP เชือก PHP XML PHP Zip PHP ช่วงเวลา

 

PHPอัพโหลดไฟล์ 5


ด้วย PHP, มันเป็นเรื่องง่ายที่จะอัปโหลดไฟล์ไปยังเซิร์ฟเวอร์

แต่ด้วยความสะดวกมาอันตรายจึงมักจะระมัดระวังในการช่วยให้การอัปโหลดไฟล์!


กำหนดค่า "php.ini" แฟ้ม

ขั้นแรกให้มั่นใจว่า PHP มีการกำหนดให้การอัปโหลดไฟล์

ใน "php.ini" แฟ้มค้นหาสำหรับหน้าที่มีคำสั่งและตั้งค่าให้เมื่อวันที่:

file_uploads = On

สร้างฟอร์ม HTML นี้

ถัดไปสร้างรูปแบบ HTML ที่ช่วยให้ผู้ใช้สามารถเลือกไฟล์ภาพที่พวกเขาต้องการที่จะอัปโหลด:

<!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>

กฎบางอย่างที่จะปฏิบัติตามรูปแบบ HTML ข้างต้น:

  • ตรวจสอบให้แน่ใจว่ารูปแบบจะใช้วิธี = "โพสต์"
  • แบบฟอร์มที่ยังต้องการแอตทริบิวต์ต่อไปนี้: enctype = "multipart / form ข้อมูล"It specifies which content-type to use when submitting the form ซึ่งจะระบุประเภทเนื้อหาที่จะใช้เมื่อส่งแบบฟอร์ม

โดยไม่ต้องข้อกำหนดข้างต้นอัปโหลดไฟล์จะไม่ทำงาน

สิ่งอื่น ๆ ที่จะแจ้งให้ทราบ:

  • แท็ก type = "File" แอตทริบิวต์ของ <input> แสดงช่องใส่เป็นตัวควบคุมไฟล์เลือกด้วยปุ่ม "Browse" ติดกับการควบคุมการป้อนข้อมูล

รูปแบบดังกล่าวข้างต้นจะส่งข้อมูลไปยังแฟ้มที่เรียกว่า "upload.php" ซึ่งเราจะสร้างต่อไป


สร้างอัปโหลดไฟล์สคริปต์ PHP

"การ upload.php" แฟ้มประกอบด้วยรหัสสำหรับการอัปโหลดไฟล์:

<?php
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = 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 อธิบายว่า:

  • $ target_dir = "uploads /" - ระบุไดเรกทอรีที่ไฟล์นั้นจะถูกวางไว้
  • $ target_file ระบุเส้นทางของแฟ้มที่จะอัปโหลด
  • $ uploadOk = 1 ไม่ได้ใช้เลย (จะใช้ในภายหลัง)
  • $ imageFileType ถือไฟล์นามสกุลของไฟล์
  • ถัดไปตรวจสอบว่าไฟล์ภาพที่เป็นภาพที่เกิดขึ้นจริงหรือภาพปลอม
บันทึกหมายเหตุ: คุณจะต้องสร้างไดเรกทอรีใหม่ที่เรียกว่า "อัปโหลด" ในไดเรกทอรีที่ "upload.php" แฟ้มอยู่The uploaded files will be saved there. ไฟล์ที่อัปโหลดจะถูกบันทึกไว้ที่นั่น

ตรวจสอบว่าไฟล์อยู่แล้ว

ตอนนี้เราสามารถเพิ่มข้อ จำกัด บางอย่าง

ครั้งแรกที่เราจะตรวจสอบหากไฟล์ที่มีอยู่แล้วใน "อัปโหลด" โฟลเดอร์If it does, an error message is displayed, and $uploadOk is set to 0: ถ้ามันไม่เกิดข้อผิดพลาดจะปรากฏและ $ uploadOk ตั้งค่าเป็น 0:

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

จำกัด ขนาดไฟล์

ช่องใส่ข้อความในรูปแบบไฟล์ HTML ข้างต้นของเรามีชื่อว่า "fileToUpload"

ตอนนี้เราต้องการที่จะตรวจสอบขนาดของไฟล์If the file is larger than 500kb, an error message is displayed, and $uploadOk is set to 0: หากไฟล์มีขนาดใหญ่กว่า 500 กิโลไบต์ข้อผิดพลาดจะปรากฏและ $ uploadOk ตั้งค่าเป็น 0:

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

ประเภทไฟล์ จำกัด

รหัสข้างล่างนี้เพียง แต่ช่วยให้ผู้ใช้สามารถอัปโหลดไฟล์ JPG, JPEG, PNG, GIF และไฟล์All other file types gives an error message before setting $uploadOk to 0: ทุกไฟล์ประเภทอื่น ๆ ให้เกิดข้อผิดพลาดก่อนที่จะตั้ง $ 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;
}

อัปโหลดไฟล์ที่สมบูรณ์ PHP สคริปต์

สมบูรณ์ "upload.php" แฟ้มขณะนี้มีลักษณะเช่นนี้

<?php
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = 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 ". basename( $_FILES["fileToUpload"]["name"]). " has been uploaded.";
    } else {
        echo "Sorry, there was an error uploading your file.";
    }
}
?>

กรอก PHP Filesystem อ้างอิง

สำหรับการอ้างอิงที่สมบูรณ์แบบของฟังก์ชั่นระบบแฟ้มไปที่เราสมบูรณ์ PHP Filesystem อ้างอิง