Hướng dẫn is image checked in php? - hình ảnh có được kiểm tra trong php không?
Cách bản địa để có được mimetype: Show
For PHP < 5.3 use mime_content_type() Các lựa chọn thay thế để có được mimetype là exif_imagetype và getImagesize, nhưng chúng dựa vào việc cài đặt LIB thích hợp. Ngoài ra, họ có thể sẽ chỉ trả lại hình ảnh bắt chước, thay vì toàn bộ danh sách được đưa ra trong Magic.mime. Mặc dù Nếu bạn không muốn bận tâm về những gì có sẵn trên hệ thống của mình, chỉ cần bọc cả bốn chức năng thành một phương thức proxy để ủy thác cuộc gọi chức năng cho bất cứ điều gì có sẵn, ví dụ: Cách kiểm tra tệp là hình ảnh trong PHP Trong hướng dẫn này, chúng tôi sẽ cố gắng tìm giải pháp cho "Cách kiểm tra tệp là hình ảnh trong PHP" thông qua lập trình. Bạn có thể kiểm tra xem tệp có phải là hình ảnh hay không trong PHP bằng cách sử dụng chức năng này không. Hàm này sẽ trả về true nếu tệp được chỉ định là hình ảnh hoặc trả về sai nếu tệp được chỉ định không phải là hình ảnh. Hầu hết chúng ta sẽ bắt gặp các giải pháp phổ biến trong PHP để kiểm tra xem tệp đã tải lên có phải là hình ảnh hay không, bạn có thể đã thử cách kiểm tra các phần mở rộng thông thường và chấp nhận tệp là một hình ảnh hợp lệ, nếu ai đó nham hiểm đã tải lên Tập lệnh chỉ bằng cách thay đổi phần mở rộng của tệp thành .jpg hoặc .gif? . Tôi cá rằng hầu hết chúng ta đã sử dụng những điều sau đây để xác nhận hình ảnh được tải lên trong PHP. Kiểm tra xem hình ảnh được tải lên có hợp lệ với getImagesize () trong PHP không$imagesizedata = getimagesize($file); if ($imagesizedata ) { //do something } Nhưng tài liệu PHP cho biết không sử dụng getImagesize () để kiểm tra xem một tệp nhất định có phải là hình ảnh hợp lệ không. Thật đúng là getImagesize () trả về một mảng với một số giá trị ngẫu nhiên cho chiều cao và chiều rộng hình ảnh, khi tệp đã cho không phải là một hình ảnh hợp lệ. Kiểm tra xem hình ảnh được tải lên có hợp lệ bằng cách kiểm tra các phần mở rộng không$type=$_FILES[ 'image' ][ 'type' ]; $extensions=array( 'image/jpeg', 'image/png', 'image/gif' ); if( in_array( $type, $extensions )){ //do something } Nhưng ở đây bạn chỉ kiểm tra các phần mở rộng, như tôi đã nói trước đó, bất kỳ ai cũng có thể đổi tên một tệp có nội dung khác thành JPG hoặc GIF và tải chúng lên mà không gặp vấn đề gì. Kiểm tra xem hình ảnh được tải lên có hợp lệ với Dữ liệu Exif và FileInfo trong PHP khôngBây giờ, hãy để thử một cái gì đó để kiểm tra xem hình ảnh đã cho có hợp lệ không, nhưng trước khi đi vào ví dụ, hãy để tôi nói với bạn, ngay cả các chức năng sau trong PHP sẽ không xác thực chính xác một hình ảnh.
Tất cả các chức năng trên sẽ trả về loại MIME/IMAGE cho hình ảnh đã cho, nhưng chúng cũng sẽ thất bại nếu chúng tôi tải lên một tệp sau khi thay đổi tiện ích mở rộng hoặc gian lận với một vài byte đầu tiên của các tiêu đề hình ảnh. Đây là ví dụ tôi đã nói đến. Tôi có nội dung sau trong một tệp và lưu nó dưới dạng chuyển động.gifmotion.gif GIF89a< |