Loại MIME của tệp PHP là gì?

Loại MIME là nhãn được sử dụng để xác định loại dữ liệu. Nó được sử dụng để phần mềm có thể biết cách xử lý dữ liệu. Nó phục vụ cùng một mục đích trên Internet mà các phần mở rộng tệp thực hiện trên Microsoft Windows

Vì vậy, nếu một máy chủ nói “Đây là văn bản/html” thì máy khách có thể nói “À, đây là tài liệu HTML, tôi có thể hiển thị nội bộ đó”, trong khi nếu máy chủ nói “Đây là ứng dụng/pdf” thì máy khách có thể nói “À . ”

Mật mã

Vì vậy, hãy đi đến mã. Ở đây tôi đã viết Class để phân loại tệp dựa trên MIME Type trong PHP

Tôi phân loại một số tệp theo 5 danh mục, ví dụ như Âm nhạc/Âm thanh, Video, Phần mềm, Ứng dụng và Sách

Đó là tất cả

Bạn có thể sử dụng mã đó để phân loại một số tệp, nếu bạn muốn thêm các danh mục khác, chỉ cần tạo một mảng mới và xác định danh mục loại Mime nào bạn sẽ thêm vào. Nếu không, bạn có thể tạo câu lệnh điều kiện trong đó là “Khác” để phân loại tệp không được liệt kê trong Lớp

Lớp PHP đơn giản để đoán loại tệp mime dựa trên phần mở rộng tệp có khả năng sử dụng trong dự án Symfony

Cài đặt

composer require dfridrich/php-mime-type

Cách sử dụng

sử dụng cơ bản



// from string, can be used on non-existing files
echo \Defr\PhpMimeType\MimeType::get('index.php'); // outputs text/html

// from SplFileInfo
echo \Defr\PhpMimeType\MimeType::get(new \SplFileInfo('Video.avi')); // outputs application/octet-stream

// from SplFileObject
echo \Defr\PhpMimeType\MimeType::get(new \SplFileObject('Image.JPEG')); // outputs image/jpeg

// from string
echo \Defr\PhpMimeType\MimeType::get('someStrange.extension'); // outputs application/octet-stream

// Multiple files
$files = ['index.php', new \SplFileInfo('Video.avi'), new \SplFileObject('example.php')];
/** @var \Defr\PhpMimeType\MimeTypeInfo[] $mimeTypes */
$mimeTypes = \Defr\PhpMimeType\MimeType::multiple($files);

foreach ($mimeTypes as $mimeType) {
    echo sprintf('File "%s" is mime type "%s"', $mimeType->getFileName(), $mimeType->getMimeType()).'
'
; } // Guess FontAwesome icon echo \Defr\PhpMimeType\MimeType::getFontAwesomeIcon('test.pdf'); // fa fa-file-pdf-o // ...with fixed width icon echo \Defr\PhpMimeType\MimeType::getFontAwesomeIcon('test.pdf', true); // fa fa-file-pdf-o fa-fw

phản hồi của Symfony

Nếu bạn muốn sử dụng tính năng phản hồi của Symfony, hãy cài đặt thêm gói HTTP Foundation

composer require symfony/http-foundation

Chỉ cần chuyển tên tệp hoặc đối tượng SPL cho phương thức phản hồi và bạn sẽ nhận được đối tượng Symfony\Component\HttpFoundation\Response. Bố trí là tệp đính kèm theo mặc định, bạn có thể thay đổi nó thành nội tuyến hoặc sử dụng hằng số của Symfony ResponseHeaderBag DISPOSITION_ATTACHMENT hoặc DISPOSITION_INLINE

Hệ thống Phần mở rộng Thư Internet Đa năng (MIME) được thiết kế để cho phép định dạng email để chúng có thể dễ dàng bao gồm các tệp và được tạo thành từ nhiều phần. Để có thể hướng dẫn các ứng dụng email loại tệp được đính kèm, các loại MIME đã được tạo - mô tả ngắn, bằng văn bản về các loại tệp mà mọi người có thể nhận ra. Các loại MIME phổ biến đến mức hiện tại chúng được sử dụng trên toàn bộ WWW và nhiều hệ điều hành dựa vào chúng để quyết định cách mở tệp. Trong email, các tệp đính kèm được sao chép vào thư theo nghĩa đen dưới dạng một chuỗi được mã hóa, với các điểm đánh dấu ranh giới MIME được sử dụng để cho người đọc thư biết vị trí bắt đầu và kết thúc của mỗi tệp đính kèm

Để giúp phân biệt một tệp nhất định là gì và cách xử lý tệp đó, cả máy chủ web và ứng dụng email đều gửi và nhận các loại MIME - chuỗi văn bản cơ bản xác định tệp đã cho là gì. Ví dụ: nếu bạn muốn gửi JPEG từ một tập lệnh, bạn cần tìm ra loại MIME của nó ("hình ảnh/jpeg") và gửi nó tới trình duyệt trước chính hình ảnh đó

Có các loại MIME cho tất cả các loại định dạng, từ "application/zip" cho tệp zip đến "video/quicktime" cho Quicktime. mov và "application/x-tar" cho các tệp Tar. Công việc của Cơ quan cấp số được gán trên Internet (IANA) là gán các loại MIME chính thức và nó cũng giữ một danh sách tất cả các loại MIME đã đăng ký trên trang web của mình. Tại thời điểm viết, danh sách này có sẵn tại http. //www. iana. org/bài tập/loại phương tiện - đáng xem qua

Có hàng trăm, thậm chí có thể hàng ngàn loại MIME ngoài kia, đơn giản vì có rất nhiều định dạng tệp ngoài kia, nhưng có một số định dạng nhất định nổi bật là phổ biến, đó là

đơn/đồng. MS Excel

Tệp dữ liệu Microsoft Excel

âm thanh/wav

Tệp âm thanh sóng

phông chữ/ttf

Phông chữ TrueType

hình ảnh/gif

ảnh GIF

hình ảnh/jpeg

ảnh JPEG

hình ảnh/tiff

hình ảnh TIFF

hình ảnh/bmp

Hình ảnh bitmap

hình ảnh/png

hình ảnh PNG

văn bản/html

tệp HTML

văn bản/đồng bằng

Văn bản thô

văn bản/đồng. ms-từ

Tệp dữ liệu Microsoft Word

video/mpeg

phim MPEG

video/thời gian nhanh

video quay nhanh

Như bạn có thể thấy, ý nghĩa là tự giải thích từ loại MIME - nó có thể đọc được bằng con người và có thể đọc được bằng máy, đây là một tài sản lớn. Các loại MIME được sử dụng ở nhiều nơi khác ngoài email - ví dụ: máy chủ web sử dụng rất nhiều loại MIME để biết cách xử lý các tệp khi chúng được yêu cầu và cũng để chúng biết loại tài liệu nào khách hàng có thể và

Đương nhiên, bạn không nên tiếp tục tra cứu các danh sách dài để tìm loại MIME mà bạn muốn mỗi khi bạn nhận được một tệp, nhưng PHP đã giải cứu bằng chức năng tra cứu MIME đặc biệt, mime_content_type(). Điều này dựa trên mô-đun Apache mod_mime_magic, bản thân mô-đun này dựa trên lệnh tệp Unix. Nếu bạn chưa bao giờ sử dụng điều này trước đây, thì nguyên tắc là nhiều loại tệp có một mã định danh duy nhất trong một vài byte đầu tiên, được gọi là "số ma thuật", chỉ định loại tệp đó là gì. Ví dụ, các bản đồ bit bắt đầu bằng "BM" và các tệp thực thi MS DOS bắt đầu bằng "MZ". Bằng cách có một bảng tra cứu lớn lựa chọn các con số kỳ diệu này, khá dễ dàng để biết loại tệp nào đang được kiểm tra và do đó, loại MIME nên là gì

Để tiện ích mở rộng ma thuật MIME hoạt động, bạn phải định cấu hình PHP bằng công tắc -with-mime-magic (Unix) hoặc bật tiện ích mở rộng trong php của bạn. ini (Windows). Trên Windows, bạn cũng sẽ cần chỉnh sửa một mục khác trong tệp php của mình. ini - "mime_magic. magicfile" nên được đặt vào thư mục cài đặt PHP, với thư mục con "extras". Vì vậy, nếu bạn đã cài đặt PHP vào c. \php, điều này sẽ cần được đặt thành "c. /php/bổ sung/ma thuật. kịch câm". Trên Unix, tiện ích mở rộng này dựa trên tệp "ma thuật" được gửi cùng với Apache. Nếu PHP không tìm thấy điều này vì một số lý do, hãy thử đặt cấu hình php. ini cũng vậy

Khi bạn có tiện ích mở rộng ma thuật MIME hoạt động, bạn chỉ cần chuyển tên tệp tới mime_content_type() để lấy loại MIME của nó làm giá trị trả về, như thế này


Chạy tập lệnh đó, với điều kiện là bạn thực sự có các tệp như vậy, nên xuất ứng dụng/zip và hình ảnh/jpeg

Bạn muốn học PHP 7?

Hacking with PHP đã được cập nhật đầy đủ cho PHP 7 và hiện có sẵn dưới dạng PDF có thể tải xuống. Nhận hơn 1200 trang học PHP thực hành ngay hôm nay

Nếu điều này hữu ích, vui lòng dành chút thời gian để nói với những người khác về Hacking với PHP bằng cách tweet về nó

Loại MIME trong PHP là gì?

Hàm mime_content_type() là một hàm sẵn có trong PHP, được dùng để lấy loại nội dung MIME của tệp . cú pháp. chuỗi mime_content_type( $file )

Loại MIME của tệp là gì?

Loại phương tiện (còn được gọi là Tiện ích mở rộng thư Internet đa năng hoặc loại MIME) cho biết bản chất và định dạng của tài liệu, tệp hoặc loại byte. MIME types are defined and standardized in IETF's RFC 6838.

Ví dụ về kiểu MIME là gì?

Ví dụ về các loại MIME là. văn bản/html cho các trang web bình thường . text/plain cho văn bản thuần túy. ứng dụng/octet-stream có nghĩa là “tải xuống tệp này”

Loại MIME có giống với loại tệp không?

Trong khi phần mở rộng tệp thường được sử dụng cho hệ điều hành của bạn để quyết định chương trình nào sẽ mở tệp bằng, thì các loại Mime được trình duyệt của bạn sử dụng để quyết định cách trình bày một số dữ liệu (hoặc máy chủ về cách diễn giải dữ liệu nhận được). Cả hai đều không bắt buộc nhưng bạn nên có một thỏa thuận .