Tệp tải lên Php lấy nội dung

Tập lệnh PHP có thể được sử dụng với biểu mẫu HTML để cho phép người dùng tải tệp lên máy chủ. Ban đầu, các tệp được tải lên một thư mục tạm thời và sau đó được chuyển đến đích đích bằng tập lệnh PHP

Thông tin trong phpinfo. trang php mô tả thư mục tạm thời được sử dụng để tải tệp lên là upload_tmp_dir và kích thước tệp tối đa được phép tải lên được nêu là upload_max_filesize. Các tham số này được đặt vào tệp cấu hình PHP php. ban đầu

Quá trình tải lên một tệp tuân theo các bước sau -

  • Người dùng mở trang chứa biểu mẫu HTML có tệp văn bản, nút duyệt và nút gửi

  • Người dùng nhấp vào nút duyệt và chọn tệp để tải lên từ PC cục bộ

  • Đường dẫn đầy đủ đến tệp đã chọn xuất hiện trong trường văn bản, sau đó người dùng nhấp vào nút gửi

  • Tệp đã chọn được gửi đến thư mục tạm thời trên máy chủ

  • Tập lệnh PHP được chỉ định làm trình xử lý biểu mẫu trong thuộc tính hành động của biểu mẫu kiểm tra xem tệp đã đến chưa và sau đó sao chép tệp vào một thư mục dự định

  • Tập lệnh PHP xác nhận thành công cho người dùng

Như thường lệ, khi ghi tệp, cả vị trí tạm thời và vị trí cuối cùng đều cần được đặt quyền cho phép ghi tệp. Nếu một trong hai được đặt thành chỉ đọc thì quá trình sẽ thất bại

Tệp được tải lên có thể là tệp văn bản hoặc tệp hình ảnh hoặc bất kỳ tài liệu nào

Tạo biểu mẫu tải lên

Đoạn mã HTML dưới đây tạo một biểu mẫu tải lên. Biểu mẫu này có thuộc tính method được đặt thành post và thuộc tính enctype được đặt thành multipart/form-data

 2097152){
         $errors[]='File size must be excately 2 MB';
      }
      
      if(empty($errors)==true){
         move_uploaded_file($file_tmp,"images/".$file_name);
         echo "Success";
      }else{
         print_r($errors);
      }
   }
?>

   
      
      
         
         
      
      
   

Nó sẽ tạo ra kết quả sau -

Tệp tải lên Php lấy nội dung

Tạo tập lệnh tải lên

Có một biến PHP toàn cục được gọi là $_FILES. Biến này là một mảng hai chiều liên kết và giữ tất cả thông tin liên quan đến tệp đã tải lên. Vì vậy, nếu giá trị được gán cho thuộc tính tên của đầu vào trong biểu mẫu tải lên là tệp, thì PHP sẽ tạo năm biến sau -

Tải lên tệp trong PHP cho phép bạn tải các tệp có phần mở rộng khác nhau lên máy chủ. Chúng tôi có thể sử dụng biểu mẫu HTML và cho phép người dùng tải tệp lên máy chủ. Các tệp này được lưu trữ trong một thư mục tạm thời trừ khi được chuyển đến vị trí đích để lưu trữ vĩnh viễn. Nhưng để tải lên tệp trong PHP hoạt động, chúng tôi phải đảm bảo một số cài đặt cấu hình được đặt phù hợp

Chương trình sau đại học. Phát triển web đầy đủ ngăn xếp

hợp tác với Caltech CTME Đăng ký ngay

Tệp tải lên Php lấy nội dung

Làm cách nào để định cấu hình cài đặt PHP để đảm bảo tải lên tệp mượt mà trong PHP?

Chúng tôi cần định cấu hình các cài đặt cụ thể để cho phép tải lên tệp trong PHP. Nếu không thực hiện đúng các cài đặt này, quá trình tải lên sẽ không thành công hoặc không hoạt động theo cách chúng tôi muốn. Để định cấu hình các cài đặt này, chúng ta cần tìm tệp php. tập tin ini

Nếu bạn biết về php. ini, nó tốt và tốt. Nhưng nếu bạn không biết vị trí chính xác, hãy sử dụng mã bên dưới để xác định vị trí đó

php_ini_loaded_file() là một chức năng tích hợp sẵn. Tạo tệp PHP bằng mã này và mở tệp đó từ trình duyệt của bạn thông qua máy chủ cục bộ để lấy vị trí của tệp php. tập tin ini. Khi bạn có vị trí, bạn cần tìm và định cấu hình một số cài đặt. Các cài đặt chính cùng với các giá trị được đề xuất là

;

file_uploads = Bật

;

upload_tmp_dir =

;

upload_max_filesize = 16M

;

max_file_uploads = 20

;

post_max_size = 20M

max_input_time = 60

memory_limit = 128M

max_execution_time = 30

Cài đặt khóa tốt nhất để tải lên tệp trong PHP là gì?

  • file_uploads. Khóa file_uploads xác định có cho phép tải tệp lên hay không. Theo mặc định, nó được đặt thành Bật và đó chính xác là những gì chúng tôi muốn
  • upload_max_filesize. Khóa này mô tả kích thước tệp tối đa được phép khi tải lên. Bạn có thể đã thấy điều này khi tải lên ảnh hồ sơ của mình trên một số nền tảng. Khi bạn tải lên một hình ảnh có độ phân giải cao hơn, nó cho phép kích thước tệp là (n)MB. Khóa này là thứ xử lý phần cho phép kích thước tệp tối đa cho mã PHP. Kích thước mặc định được đặt thành 2MB. Nhưng bạn có thể thay đổi nó theo sở thích và yêu cầu của bạn. Bạn cũng có thể truy cập và thay đổi cài đặt của phím này từ. tập tin htaccess
  • upload_tmp_dir. Đây là thư mục lưu file upload tạm thời. Bạn có thể đặt nó thành bất cứ thứ gì. Tuy nhiên, nếu bạn không cung cấp đường dẫn tại đây, hệ thống sẽ chọn một đường dẫn mặc định làm thư mục tạm thời
  • post_max_size. Phím này cho phép bạn đặt giới hạn tối đa cho việc lưu trữ dữ liệu POST. Khi sử dụng tính năng tải tệp lên bằng PHP, tệp được gửi và lưu trữ cùng với dữ liệu của yêu cầu POST. Do đó, nó phải luôn lớn hơn giá trị upload_max_filesize
  • max_file_uploads. Với cài đặt khóa này, bạn có thể định cấu hình số lượng tệp tối đa được tải lên thông qua một yêu cầu. Giá trị mặc định cho khóa max_file_uploads là 20
  • max_input_time. Lệnh này xác định lượng thời gian tối đa được phép để tập lệnh PHP phân tích cú pháp dữ liệu đầu vào của (các) tệp đã tải lên. Giá trị được chỉ định bằng giây và 60 giây thường là một số lượng tốt
  • giới hạn bộ nhớ. Khóa cho biết bộ nhớ tối đa mà tập lệnh PHP có thể tiêu thụ. Kích thước mặc định là 128 MB, đây là một dung lượng đáng kể. Tuy nhiên, nếu bạn vẫn gặp khó khăn khi tải lên các tệp lớn, hãy tăng số. Một điều đáng chú ý khác là luôn giữ số lớn hơn giá trị post_max_size
  • max_execution_time. Nó cho biết số thời gian tối đa tính bằng giây được phép để tập lệnh chạy. Giá trị của khóa này phải tỷ lệ thuận với kích thước của tệp được tải lên

Khóa học mới. Phát triển Full Stack cho người mới bắt đầu

Tìm hiểu Git Command, Angular, NodeJS, Maven và hơn thế nữa Đăng ký ngay

Tệp tải lên Php lấy nội dung

Tạo biểu mẫu HTML để tải lên tệp trong PHP

Bây giờ chúng ta đã hoàn tất cài đặt cấu hình, hãy tiếp tục với việc tạo biểu mẫu HTML để tải tệp lên. Đối với điều này, chúng tôi sẽ tạo chỉ mục. php và lưu nó vào trong một thư mục. Dưới đây là mã cho chỉ mục. tập tin php

phiên_bắt đầu();

?>

<. LOẠI TÀI LIỆU html>

<đầu>

Tải lên tệp PHP

if (isset($_SESSION['message']) && $_SESSION['message'])

{

      printf('%s', $_SESSION['message']);

bỏ đặt($_SESSION['tin nhắn']);

}

?>

Tải tệp lên.

    

  

Khi bạn chạy đoạn mã trên thông qua máy chủ cục bộ của mình, nó sẽ cho kết quả như sau

đầu ra

Tệp tải lên Php lấy nội dung

Một số điều quan trọng cần lưu ý từ biểu mẫu

Có một số điều cần lưu ý trong mẫu HTML trên

  • action="fileUpload. php". Giá trị trong trường hành động đề cập đến tệp sẽ xử lý tệp tải lên trong PHP. Chúng tôi sẽ tạo tệp trong giây lát
  • phương pháp = "POST". Giá trị này cho biết trình duyệt về hành động của tập lệnh để tải lên tệp đã chọn
  • enctype="multipart/form-data". Giá trị này đề cập đến loại nội dung của các tệp sẽ được chấp nhận để tải lên. Nó cũng cho biết loại mã hóa mà tập lệnh PHP sẽ sử dụng để tải lên. Giá trị multipart/form-data cho phép chúng tôi tải tệp lên bằng phương thức POST. Nó cũng đảm bảo các ký tự của tệp không được mã hóa trong khi gửi biểu mẫu. Ngoài multipart/form-data, enctype còn chấp nhận các giá trị application/x-www-form-urlencoded và text/plain
  • Các biến thông báo được sử dụng ở đầu biểu mẫu sẽ hiển thị trạng thái tải lên. Chúng cũng sẽ hiển thị thông báo thành công hoặc lỗi tùy thuộc vào trạng thái tải lên

Chạy tệp qua máy chủ sẽ cho phép bạn duyệt và chọn bất kỳ tệp nào từ máy tính của mình

Khóa học Full Stack Web Developer

Để trở thành chuyên gia về MEAN Stack Xem khóa học

Tệp tải lên Php lấy nội dung

Tạo logic tải lên để tải lên tệp trong PHP

Biểu mẫu HTML đại diện cho mã phía máy khách. Bây giờ biểu mẫu của chúng ta đã sẵn sàng, hãy chuyển sang kịch bản phía máy chủ để xử lý tệp tải lên trong PHP. Dưới đây là mã mà bạn cần sao chép trong tệpUpload. tập tin php

phiên_bắt đầu();

$message = '';

if (isset($_POST['uploadBtn']) && $_POST['uploadBtn'] == 'Tải tệp lên')

{

if (isset($_FILES['uploadedFile']) && $_FILES['uploadedFile']['error'] === UPLOAD_ERR_OK)

{

// chi tiết tệp đã tải lên

$fileTmpPath = $_FILES['uploadedFile']['tmp_name'];

$fileName = $_FILES['uploadedFile']['name'];

$fileSize = $_FILES['uploadedFile']['size'];

$fileType = $_FILES['uploadedFile']['type'];

$fileNameCmps = phát nổ(". ", $fileName);

$fileExtension = strtolower(end($fileNameCmps));

// xóa khoảng trắng thừa

$newFileName = md5(thời gian(). $fileName). '. '. $fileExtension;

// phần mở rộng tập tin được phép

$allowedfileExtensions = mảng('jpg', 'gif', 'png', 'zip', 'txt', 'xls', 'doc');

nếu (in_array($fileExtension, $allowedfileExtensions))

{

// thư mục sẽ di chuyển tập tin

$uploadFileDir = 'C. \xampp\htdocs\test';

$dest_path = $uploadFileDir. $newFileName;

if(move_uploaded_file($fileTmpPath, $dest_path))

{

$message = 'Tệp được tải lên thành công. ';

}

khác

{

$message = 'Đã xảy ra lỗi khi tải tập tin lên thư mục đích. Đảm bảo rằng máy chủ web có quyền truy cập để ghi vào thư mục đường dẫn. ';

}

}

khác

{

$message = 'Tải lên không thành công do loại tập tin không được chấp nhận. Các loại tệp được phép là. '. nổ tung(',', $allowedfileExtensions);

}

}

khác

{

    $message = 'Error occurred while uploading the file.
';

tin nhắn $. = 'Lỗi. '. $_FILES['tệp đã tải lên']['lỗi'];

}

}

$_SESSION['message'] = $message;

tiêu đề ("Vị trí. mục lục. php");

Một số điều quan trọng cần lưu ý từ mã tải lên

Có một số điều cần lưu ý trong mã tải lên ở trên

  • Điều đầu tiên chúng tôi làm là kiểm tra xem tệp có đến từ một nguồn hợp lệ hay không. Chúng tôi đã sử dụng câu lệnh if và kiểm tra chéo chúng với các giá trị biến của nút tải lên
  • Khi tệp được tải lên, biến siêu toàn cầu $_Files được điền với thông tin sau
    • tmp_name. Đường dẫn tạm thời chứa tệp tải lên
    • Tên. Tên của tập tin
    • kích thước. Kích thước của tệp đã tải lên tính bằng byte
    • loại hình. Thông tin về loại mime của tệp đã tải lên
    • lỗi. Trong trường hợp có bất kỳ lỗi nào khi tải lên, biến này sẽ nhận được thông báo lỗi thích hợp
  • Thông qua câu lệnh if bên trong, chúng tôi đã kiểm tra xem tệp tải lên bằng PHP có thành công hay không
  • Sau đó, chúng tôi sử dụng mảng $ _Files đa chiều chứa thông tin như đã thảo luận ở trên
  • Sau đó, chúng tôi đã tìm ra phần mở rộng của tệp và khớp nó với các loại được phép
  • Tiếp theo, chúng tôi đã xóa tất cả các khoảng trắng bổ sung khỏi tệp
  • Sau khi làm sạch dữ liệu file, chúng ta sử dụng hàm move_uploaded_file để chuyển file đến vị trí mong muốn
  • Cuối cùng, chúng tôi đã viết các thông báo lỗi và thành công sẽ được tìm nạp và hiển thị bằng biến lỗi đã thảo luận trước đó

Cách cả hai tệp hoạt động cùng nhau để cho phép tải lên tệp trong PHP

Khi cả hai tệp đều ở đúng vị trí, hãy chạy máy chủ web để xem hoạt động tải tệp lên. Ban đầu, bạn sẽ thấy biểu mẫu HTML mà chúng tôi đã tạo trong 'chỉ mục'. tập tin php. Điều này sẽ cho phép bạn chọn một tập tin

Tệp tải lên Php lấy nội dung

Đảm bảo chọn tệp có phần mở rộng được chấp nhận. Đối với ví dụ này, hãy chọn tệp 'png'

Tệp tải lên Php lấy nội dung

Khi bạn chọn tệp, bạn có thể nhấp vào nút “Tải tệp lên”. Điều này sẽ bắt đầu tải lên tệp trong PHP. Khi biểu mẫu được gửi, quá trình chuyển tệp sẽ diễn ra. Nếu mọi thứ suôn sẻ, bạn sẽ thấy thông báo thành công. Nhưng nếu xảy ra lỗi, bạn sẽ thấy thông báo lỗi có liên quan

Tệp tải lên Php lấy nội dung

Sau khi tải lên thành công, bạn sẽ có thể xem tệp đã tải lên trong thư mục đích, được đặt thành 'C. \xampp\htdocs\test' trong đoạn mã trên. Bạn có thể đặt nó thành bất cứ thứ gì theo sở thích của bạn

Tệp tải lên Php lấy nội dung

Ghi chú. Tên của tập tin sẽ được thay đổi

khóa học miễn phí. Nguyên tắc cơ bản về lập trình

Tìm hiểu kiến ​​thức cơ bản về lập trình Đăng ký ngay

Tệp tải lên Php lấy nội dung

Giải quyết các lỗi phổ biến có thể gặp phải khi tải tệp lên bằng PHP

Mặc dù tải lên tệp bằng PHP rất dễ dàng nhưng bạn có thể gặp một số lỗi phổ biến. Các thông báo lỗi sẽ cung cấp cho bạn gợi ý về lỗi đã xảy ra trong quá trình tải lên. Tuy nhiên, bạn có thể sử dụng đoạn mã dưới đây để có được lý do chính xác và chi tiết

$_Files[‘tệp đã tải lên’][‘lỗi’]

Dưới đây là một số lỗi tiêu chuẩn mà bạn có thể gặp phải

Tệp quá lớn

Bạn có thể gặp lỗi UPLOAD_ERR_INI_SIZE hoặc UPLOAD_ERR_FROM_SIZE nếu kích thước của tệp đã chọn lớn hơn giới hạn đã chỉ định. Bạn có thể dễ dàng khắc phục lỗi bằng cách thay đổi cấu hình của khóa kích thước tệp tối đa

Thư mục tạm thời bị thiếu

Đôi khi bạn có thể gặp hai loại lỗi thư mục. Đầu tiên là lỗi UPLOAD_ERR_NO_TMP_DIR bị ném nếu thư mục tạm thời chứa các tệp đã tải lên bị thiếu. Bạn sẽ thấy lỗi UPLOAD_ERR__NO_FILE nếu không có tệp nào được chọn để tải lên

Tải lên một phần

Lỗi UPLOAD_ERR_PARTIAL được đưa ra nếu máy chủ không thể tải tệp lên hoàn toàn

Không thể ghi vào đĩa

Bạn sẽ gặp lỗi UPLOAD_ERR_CANT_WRITE khi máy chủ không thể ghi tệp vào đĩa vì bất kỳ lý do gì

Tiện ích mở rộng PHP đã dừng tải tệp lên

Bạn sẽ nhận được UPLOAD_ERR_EXTENSION nếu quá trình tải lên bị tạm dừng do bất kỳ lỗi tiện ích mở rộng nào. Tìm phần mở rộng thực sự gây ra lỗi ở đây có thể phức tạp, đặc biệt nếu bạn đã tải lên nhiều tệp có phần mở rộng khác nhau

Bạn có phải là nhà phát triển web hoặc quan tâm đến việc xây dựng một trang web? . Khám phá bản xem trước khóa học

Sự kết luận

Trong bài viết này, bạn đã học mọi thứ về tải lên tệp trong PHP bằng một ví dụ đơn giản. Bạn cũng đã biết cách tạo tập lệnh phía máy khách và phía máy chủ để cho phép tải lên tệp trong PHP. Bây giờ, bạn có thể tiếp tục và thử tải lên nhiều tệp có phần mở rộng tệp khác nhau và xem mọi thứ diễn ra như thế nào. Ngoài ra, hãy cố gắng nhận một số lỗi có chủ ý để xem biến lỗi tìm nạp và hiển thị thông báo lỗi có liên quan như thế nào. Nếu bạn muốn tìm hiểu một số khái niệm cơ bản khác về lập trình PHP, bạn có thể tham khảo Hướng dẫn PHP của chúng tôi. Các hướng dẫn sẽ giúp bạn làm quen với các khái niệm cơ bản. Nếu bạn muốn vượt xa điều đó và trở thành nhà phát triển PHP, bạn có thể chọn tham gia Khóa đào tạo PHP của Simplilearn

Cùng với việc đào tạo đầy đủ và kiến ​​thức thực tế, bạn còn được cấp chứng chỉ sau khi hoàn thành khóa học. Bạn có thể chọn thêm Gói nghề nghiệp phát triển web hoàn chỉnh của chúng tôi. Nó cung cấp cho bạn đào tạo về các ngôn ngữ lập trình, IDE và công cụ khác nhau được sử dụng để phát triển web. Nói một cách đơn giản, khóa học rất phù hợp trong việc giúp bạn phát triển web một cách xuất sắc. Đó là phần cuối của phần tải lên tệp của chúng tôi trong bài viết hướng dẫn PHP

Tìm Chương trình sau đại học của chúng tôi trong Chương trình đào tạo trực tuyến về phát triển web Full Stack tại các thành phố hàng đầu

NameDatePlacePost Chương trình sau đại học về Phát triển Web Full Stack Nhóm bắt đầu vào ngày 11 tháng 1 năm 2023,
Đợt cuối tuầnChi tiết CityView của bạnChương trình sau đại học về Phát triển Web Full Stack, SydneyCohort bắt đầu vào ngày 26 tháng 1 năm 2023,
Weekend batchSydneyView DetailsPost Graduate Program in Full Stack Web Development, MelbourneCohort starts on 15th Feb 2023,
Weekend batchMelbourneView Details

Thông tin về các Tác giả

Tệp tải lên Php lấy nội dung
đơn giản

Simplilearn là một trong những nhà cung cấp dịch vụ đào tạo trực tuyến hàng đầu thế giới về Tiếp thị kỹ thuật số, Điện toán đám mây, Quản lý dự án, Khoa học dữ liệu, CNTT, Phát triển phần mềm và nhiều công nghệ mới nổi khác

Làm cách nào tôi có thể lấy nội dung của tệp đã tải lên bằng PHP?

Cách tiếp cận. .
Tạo Biểu mẫu HTML sẽ chấp nhận tệp văn bản thông thường
Tạo một tệp PHP sẽ lưu trữ thông tin tệp đã tải lên bằng mảng $_FILES
Specify the created PHP file at action attribute inside
tag..
Tải lên bất kỳ tệp nào từ trang web đã tạo

Làm cách nào tôi có thể xem hình ảnh đã tải lên bằng PHP?

php $allowedExts = mảng("gif", "jpeg", "jpg", "png"); . ", $_FILES["file"]["name"]); $extension = end($temp); if ((($_FILES["file"]["type"] == "image/gif"). ($_FILES["file"]["type"] == "hình ảnh/jpeg"). ($_FILES["file"]["type"] == "hình ảnh/jpg"). ($_FILES["file"]["type"] == "hình ảnh/pjpeg"). ($_FILES[

Làm cách nào tôi có thể tải xuống tệp đã tải lên từ cơ sở dữ liệu trong PHP?

php $name= $_GET['nama']; . Chuyển tập tin'); . ứng dụng/octet-stream'); . tập tin đính kèm;

Điều nào sau đây cung cấp loại nội dung của tệp được tải lên trong PHP?

Trong PHP, dữ liệu biểu mẫu trong yêu cầu HTTP được tự động phân tích cú pháp. Công cụ PHP lưu trữ thông tin của các tệp đã tải lên trong mảng $_FILES. . 3. 1. Phân tích dữ liệu biểu mẫu và lấy thông tin về tệp đã tải lên bằng PHP