Tmp_name trong tải lên tệp PHP là gì?

Tôi sử dụng tập lệnh PHP có tên là tải lên PHP dễ dàng để thực hiện các chức năng tải lên của mình. Tôi có thể thay đổi tên hoặc làm những gì mình muốn bằng cách sử dụng mã được liệt kê bên dưới sau khi đưa lớp tải lên vào tệp của mình

upload_dir = "image/"; // "files" is the folder for the uploaded files (you have to create this folder)
        $my_upload->extensions = array(".png",".jpeg",".jpg"); // specify the allowed extensions here
        // $my_upload->extensions = "de"; // use this to switch the messages into an other language (translate first!!!)
        $my_upload->max_length_filename = 1000; // change this value to fit your field length in your database (standard 100)
        $my_upload->rename_file = true;
        $my_upload->the_temp_file = $_FILES['stdImage']['tmp_name'];
        $my_upload->the_file = $_FILES['stdImage']['name'];
        $my_upload->http_error = $_FILES['stdImage']['error'];
            //$my_upload->replace = (isset($_POST['replace'])) ? $_POST['replace'] : "n"; // because only a checked checkboxes is true
            //$my_upload->do_filename_check = (isset($_POST['check'])) ? $_POST['check'] : "n"; // use this boolean to check for a valid filename
            //$new_name = (isset($_POST['name'])) ? $_POST['name'] : "";
        if ($my_upload->upload()) { // new name is an additional filename information, use this to rename the uploaded file
            $full_path = $my_upload->upload_dir.$my_upload->file_copy;
            $imagename = $my_upload->get_uploaded_file_info($full_path);
        }
    
    }
    else
    {
        $imagename = "" ;
    }

Các tính năng tải lên tệp PHP cho phép bạn tải lên cả tệp văn bản và tệp nhị phân. Hơn nữa, bạn có thể có toàn quyền kiểm soát tệp sẽ được tải lên thông qua các chức năng vận hành tệp và xác thực PHP


PHP $_FILES

PHP global $_FILES chứa tất cả thông tin của tệp. Với sự trợ giúp của $_FILES toàn cầu, chúng tôi có thể lấy tên tệp, loại tệp, kích thước tệp, tên tệp tạm thời và các lỗi liên quan đến tệp

Ở đây, chúng tôi giả sử rằng tên tệp là tên tệp

$_FILES['tên tệp']['tên']

trả về tên tập tin

$_FILES['filename']['type']

trả về loại MIME của tệp

$_FILES['filename']['size']

trả về kích thước của tệp (tính bằng byte)

$_FILES['filename']['tmp_name']

trả về tên tệp tạm thời của tệp được lưu trữ trên máy chủ

$_FILES['tên tệp']['lỗi']

trả về mã lỗi liên quan đến tệp này


hàm move_uploaded_file()

Hàm move_uploaded_file() di chuyển tệp đã tải lên đến một vị trí mới. Hàm move_uploaded_file() kiểm tra nội bộ xem tệp có được tải lên thông qua yêu cầu POST hay không. Nó di chuyển tệp nếu nó được tải lên thông qua yêu cầu POST

- finfo chỉ hỗ trợ bộ đệm (finfo_buffer) và tên tệp (finfo_file) chứ không hỗ trợ tài nguyên luồng

- khi tách tài nguyên, luồng (và phiên bản Tệp đã tải lên) chuyển sang trạng thái không sử dụng được, vì vậy tệp không thể được sao chép hoặc di chuyển sau đó

Tôi chỉ muốn kiểm tra loại mime của tệp trước khi di chuyển nó

Trong bài học này, bạn sẽ tìm hiểu về cách tải tệp và hình ảnh lên máy chủ web. Thao tác này tương đối dễ thực hiện trong PHP. Khi chúng tôi đề cập đến tệp và hình ảnh, chúng tôi đang nói về tất cả các loại dữ liệu và hình ảnh trên máy tính của bạn như tệp MS word, tệp pdf, hình ảnh, v.v. Nó phụ thuộc vào những gì bạn muốn cho phép người dùng tải lên máy chủ web

trong bài báo này

  • Tải tệp lên máy chủ bằng PHP
  • Mã lỗi tải lên tệp
  • Cho phép tải lên tệp trong PHP
    • Ví dụ về tải lên tệp trong PHP
    • hàm move_uploaded_file()
      • Cú pháp của move_uploaded_file()

Tải tệp lên máy chủ bằng PHP

Có hai cách để tải tệp lên máy chủ web. Bạn có thể tải lên các tệp hoặc hình ảnh trong cơ sở dữ liệu dưới dạng blob hoặc bạn có thể lưu trực tiếp dữ liệu hoặc ảnh vào một thư mục trên máy chủ web của mình

Trong bài học này, chúng ta sẽ trình bày phương pháp thứ hai để tải tệp lên

Đây là biểu mẫu web


6 đơn giản chỉ có một phần tử cho phép người dùng chọn tệp


Biểu mẫu đang sử dụng phương thức đăng để gửi dữ liệu đến máy chủ web. Thuộc tính hành động được đặt thành tệp


7 có tập lệnh để xử lý tải lên. Thuộc tính cuối cùng là enctype xác định phương thức mã hóa của tệp trong khi biểu mẫu sẽ được gửi

Tmp_name trong tải lên tệp PHP là gì?

Biểu mẫu tải tệp lên

Để cho phép upload nhiều file thì thêm thuộc tính “multiple” với phần tử file và nếu bạn muốn cho phép user chỉ upload 1 file thì bỏ qua thuộc tính này

Sau khi biểu mẫu này được gửi,

";
print_r($_FILES);
echo "
"; ?>0 là mảng;

";
print_r($_FILES);
echo "
"; ?>

Đầu ra

Array
(
[filename] => Array
(
[name] => bitcoin.jpg
[type] => image/jpeg
[tmp_name] => C:\wamp64\tmp\php5F8F.tmp
[error] => 0
[size] => 90356
)

)

Tên tệp ở đây là tên của phần tử đầu vào lưu trữ tệp đang được tải lên

  • $_FILES[‘filename’][‘name’] có tên của tệp đang được tải lên
  • $_FILES[‘filename’][‘type’] có loại tệp. Trong trường hợp này, đó là hình ảnh/jpeg vì tệp được tải lên là hình ảnh jpeg
  • $_FILES[‘filename’][‘tmp_name’] có tên tạm thời của tệp
  • $_FILES[‘filename’][‘error’] có mã lỗi
  • $_FILES[‘flename’][‘size’] lưu trữ kích thước của tệp/hình ảnh

Mã lỗi tải lên tệp

PHP cung cấp cho bạn một số mã lỗi để biết trạng thái của tệp đang được tải lên

  • UPLOAD_ERR_OK hoặc 0 có nghĩa là không có lỗi, tệp đã tải lên thành công
  • UPLOAD_ERR_INI_SIZE hoặc 1 có nghĩa là tệp đã vượt quá upload_max_filesize. Bạn có thể thay đổi lệnh này từ php. ini nếu bạn phải tải lên nhiều tệp quan trọng hơn giới hạn cho phép. Theo mặc định, giá trị là 2MB
  • UPLOAD_ERR_FROM_SIZE hoặc 2 có nghĩa là tệp vượt quá
    ";
    print_r($_FILES);
    echo "
    "; ?>1
  • UPLOAD_ERR_PIALA hoặc 3 có nghĩa là tệp được tải lên nhưng một phần
  • UPLOAD_ERR_NO_FILE hoặc 4 có nghĩa là không có tệp nào được tải lên

Vì vậy, việc sử dụng các giá trị hoặc mã lỗi này là gì?

Giả sử bạn muốn người dùng đó không thể tải lên bất kỳ tệp nào nặng hơn 50KB

 51200) {
$error = 'Please, Upload files less than 50KB';

?>

Để cho phép người dùng chỉ tải lên hình ảnh jpeg, hãy sử dụng đoạn mã sau

Cho phép tải lên tệp trong PHP

Để cho phép tải lên tệp trong PHP, bạn cần đặt một vài tùy chọn cấu hình trong tệp php. tập tin ini

Đặt chỉ thị

";
print_r($_FILES);
echo "
"; ?>2 trong
";
print_r($_FILES);
echo "
"; ?>3 thành Bật.
";
print_r($_FILES);
echo "
"; ?>4 sẽ cho phép bạn đặt kích thước tối đa cho các tệp được tải lên. Theo mặc định, giá trị được đặt thành 2 MB, có thể không đủ nếu bạn phải tải lên nhiều ảnh

Để tăng kích thước của tệp tải lên, bạn cần thay đổi giá trị theo yêu cầu của mình. Nếu tệp được tải lên vượt quá

";
print_r($_FILES);
echo "
"; ?>4, PHP sẽ đưa ra lỗi vượt quá tệp

Bạn cũng có thể thay đổi trong php. ini cài đặt mặc định bằng cách sử dụng. tập tin htaccess. Chỉ cần sao chép dán các dòng mã sau vào của bạn. htaccess và tải nó lên thư mục gốc


2

Ví dụ về tải lên tệp trong PHP

Trong ví dụ này, chúng tôi sẽ tải một hình ảnh lên máy chủ bằng một biểu mẫu web đơn giản.
Đầu tiên, hãy tạo hai tệp.

  1. tập tin đầu vào. php
  2. fileinput_ac. php

Bây giờ hãy mở fileinput. php và sao chép đoạn mã sau, lưu và mở trong trình duyệt


3

hàm move_uploaded_file()

Hàm

";
print_r($_FILES);
echo "
"; ?>6 là chìa khóa để upload file lên web server trong PHP. Nó di chuyển tệp đã tải lên từ vị trí tạm thời sang vị trí mới được chỉ định

Cú pháp của move_uploaded_file()


5

Chức năng này sẽ kiểm tra trước nếu tệp được đề cập bởi $filename được tải lên. Nếu đó là một tệp hợp lệ, PHP sẽ di chuyển tệp đến đích được cung cấp bởi $destination. Điều này Nó sẽ trả về đúng khi thành công, sai khi thất bại

Làm cách nào để lấy Tmp_name của tệp trong PHP?

$_FILES['file']['tmp_name'] - Tên tệp tạm thời của tệp mà tệp đã tải lên được lưu trữ trên máy chủ.

Làm cách nào để tải lên một tệp trong PHP?

Tải lên tệp PHP .
Định cấu hình "php. ini" Tập tin. Trước tiên, hãy đảm bảo rằng PHP được định cấu hình để cho phép tải tệp lên. .
Kiểm tra xem tệp đã tồn tại chưa. Bây giờ chúng ta có thể thêm một số hạn chế. .
Kích thước tệp giới hạn. Trường nhập tệp trong biểu mẫu HTML của chúng tôi ở trên được đặt tên là "fileToUpload". .
Loại tệp giới hạn. .
Hoàn thành tải lên tệp PHP Script

Làm cách nào để tải lên một hình ảnh trong PHP?

Simple PHP file/image upload code on same page.

Biến toàn cục PHP nào được sử dụng để tải tệp lên?

Mô tả. $_FILES là biến siêu toàn cầu có thể được sử dụng để tải tệp lên. Ở đây chúng ta sẽ thấy một ví dụ trong đó tập lệnh php của chúng ta kiểm tra xem biểu mẫu để tải tệp lên có đang được gửi hay không và tạo một thông báo nếu đúng. mã của các tập tin.