Php lưu trữ các tệp TMP ở đâu?

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

Php lưu trữ các tệp TMP ở đâu?

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

Php lưu trữ các tệp TMP ở đâu?

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

Php lưu trữ các tệp TMP ở đâu?

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

Php lưu trữ các tệp TMP ở đâu?

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

Php lưu trữ các tệp TMP ở đâu?

Đả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'

Php lưu trữ các tệp TMP ở đâu?

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

Php lưu trữ các tệp TMP ở đâu?

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

Php lưu trữ các tệp TMP ở đâu?

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

Php lưu trữ các tệp TMP ở đâu?

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

Phần 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

Chương trình Sau đại học NameDatePlace trong Nhóm phát triển Web Full Stack bắt đầu vào ngày 16 tháng 2 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, SingaporeCohort bắt đầu vào ngày 1 tháng 3 năm 2023,
Đợt cuối tuầnSingaporeXem chi tiếtChương trình sau đại học về Phát triển web ngăn xếp đầy đủNhóm bắt đầu vào ngày 15 tháng 3 năm 2023,
Lô hàng cuối tuầnChi tiết CityView của bạn

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

Php lưu trữ các tệp TMP ở đâu?
đơ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

Thư mục PHP tmp là gì?

Tổng quan. Thư mục tạm thời được dùng để lưu trữ tệp khi tệp được tải lên . Thư mục này phải được ghi bởi bất kỳ người dùng nào PHP đang chạy dưới dạng. Nếu không được chỉ định, PHP sẽ sử dụng mặc định của hệ thống.

Làm cách nào để thay đổi thư mục tạm thời PHP?

Trả lời .
Đăng nhập vào Plesk
Chuyển đến Công cụ & Cài đặt > Cài đặt PHP > chọn phiên bản PHP được yêu cầu (bất kể CGI, FastCGI hay FPM) > chuyển sang php. .
Ngoài ra cho các phiên bản PHP 5. 6 trở lên, tìm lệnh sys_temp_dir. Bỏ ghi chú dòng và thay đổi giá trị của nó thành một đường dẫn bắt buộc. .
Nhấn OK để áp dụng các thay đổi

Làm cách nào để sử dụng các tệp $ _ trong PHP?

Biến toàn cục được xác định trước $_FILES là một mảng kết hợp chứa các mục được tải lên qua phương thức HTTP POST. Tải lên một tệp yêu cầu biểu mẫu phương thức HTTP POST với thuộc tính enctype được đặt thành nhiều phần/biểu mẫu dữ liệu. $_FILES['file']['name'] - Tên ban đầu của tệp sẽ được tải lên .

Phần mở rộng tệp TMP là gì?

Tệp TMP đề cập đến bản sao lưu tạm thời, bộ lưu trữ hoặc hệ thống tệp khác được tạo bởi một chương trình phần mềm . Đôi khi nó được tạo dưới dạng một tệp vô hình và thường bị hủy khi thoát khỏi chương trình. Các tệp TMP cũng có thể được sử dụng để lưu trữ thông tin tạm thời trong khi một tệp mới đang được tạo.