Làm cách nào để biết tệp là hình ảnh hay video php?

Cloudinary cung cấp API để tải hình ảnh, video và bất kỳ loại tệp nào khác lên đám mây. Các tệp được tải lên Cloudinary được lưu trữ an toàn trên đám mây với lịch sử sửa đổi và sao lưu an toàn. API của Cloudinary cho phép tải lên an toàn từ máy chủ của bạn, trực tiếp từ trình duyệt hoặc ứng dụng dành cho thiết bị di động của khách truy cập hoặc được tìm nạp qua các URL công khai từ xa

Thư viện PHP của Cloudinary bao bọc API tải lên của Cloudinary và đơn giản hóa việc tích hợp. Các phương thức PHP có sẵn để dễ dàng thực hiện tải hình ảnh và video PHP lên đám mây và các phương thức trình trợ giúp xem PHP có sẵn để tải trực tiếp từ trình duyệt lên Cloudinary

Trang này bao gồm các mẫu sử dụng phổ biến để tải lên hình ảnh và video PHP với Cloudinary

Để biết chi tiết về tất cả các tùy chọn và tham số tải lên có sẵn, hãy xem tài liệu Tải lên phương tiện và phương pháp Tham khảo API tải lên

Tiện ích Tải lên của Cloudinary là một giao diện người dùng tương tác, giàu tính năng, dễ tích hợp cho phép bạn thêm hỗ trợ tải lên Cloudinary vào trang web của mình. Có thể dễ dàng nhúng tiện ích vào ứng dụng web của bạn chỉ bằng một vài dòng mã JavaScript, loại bỏ nhu cầu phát triển khả năng tải lên tương tác nội bộ. Xem tài liệu về tiện ích tải lên để biết thông tin chi tiết

Bạn có thể tải hình ảnh, video hoặc bất kỳ tệp thô nào khác lên Cloudinary từ mã PHP của mình. Quá trình tải lên được thực hiện qua HTTPS bằng cách sử dụng một giao thức bảo mật dựa trên các tham số

\Cloudinary\Uploader::upload("my_image.jpg")
1 và
\Cloudinary\Uploader::upload("my_image.jpg")
2 của môi trường sản phẩm của bạn

Phương thức PHP sau tải hình ảnh lên đám mây

public static function upload($file, $options = [])

Ví dụ: tải lên tệp hình ảnh cục bộ có tên 'my_image. jpg'

\Cloudinary\Uploader::upload("my_image.jpg")

Tệp cần tải lên có thể được chỉ định dưới dạng đường dẫn cục bộ, URL HTTP hoặc HTTPS từ xa, URL bộ chứa lưu trữ trong danh sách trắng (S3 hoặc Google Storage), URI dữ liệu base64 hoặc URL FTP. Để biết chi tiết, xem

Để biết chi tiết về tất cả các tùy chọn và tham số tải lên có sẵn, hãy xem tài liệu Tải lên phương tiện và phương pháp Tham khảo API tải lên

Bạn tải lên video giống hệt như hình ảnh. Tuy nhiên, phương pháp

\Cloudinary\Uploader::upload("my_image.jpg")
3 chỉ hỗ trợ tải lên các tệp có kích thước tối đa 100 MB. Để tải lên các video lớn hơn, hãy sử dụng phương pháp tải các tệp lớn lên đám mây theo khối

Phương thức

\Cloudinary\Uploader::upload("my_image.jpg")
4 có chữ ký và tùy chọn giống hệt như phương thức
\Cloudinary\Uploader::upload("my_image.jpg")
3, với việc bổ sung tham số tùy chọn
\Cloudinary\Uploader::upload("my_image.jpg")
6 (mặc định 20 MB)

Ví dụ sau tải

\Cloudinary\Uploader::upload("my_image.jpg")
7 lên Cloudinary và lưu trữ nó trong cấu trúc thư mục hai cấp với ID công khai
\Cloudinary\Uploader::upload("my_image.jpg")
8. Nó cũng thực hiện hai thao tác thay đổi kích thước video thành hình vuông và hình chữ nhật nhỏ

\Cloudinary\Uploader::upload_large("dog.mp4", [
  "resource_type" => "video,
  "public_id" => "myfolder/mysubfolder/dog_closeup",
  "chunk_size" => 6_000_000,
  "eager" => [
    ["width" => 300, "height" => 300, "crop" => "pad", "audio_codec" => "none"], 
    ["width" => 160, "height" => 100, "crop" => "crop", "gravity" => "south", "audio_codec => "none"]], 
  "eager_async" => TRUE, 
  "eager_notification_url" => "https://mysite.example.com/notify_endpoint"])

Theo mặc định, quá trình tải lên được thực hiện đồng bộ. Sau khi hoàn tất, hình ảnh hoặc video đã tải lên có sẵn ngay lập tức để chuyển đổi và phân phối. Lệnh gọi tải lên trả về một Hash có nội dung tương tự như sau

Phản hồi bao gồm các URL HTTP và HTTPS để truy cập nội dung phương tiện đã tải lên cũng như thông tin bổ sung về nội dung đã tải lên. ID công khai, loại tài nguyên, chiều rộng và chiều cao, định dạng tệp, kích thước tệp theo byte, chữ ký để xác minh phản hồi, v.v.

  • Để biết thêm thông tin về tải nội dung phương tiện lên, hãy xem tài liệu Tải lên phương tiện
  • Để biết chi tiết về tất cả các tham số tải lên có sẵn, hãy xem phương pháp Tham khảo API tải lên

Mẫu tải lên được đề cập ở trên cho phép mã PHP phía máy chủ của bạn tải nội dung phương tiện lên Cloudinary. Trong quy trình này, nếu bạn có một biểu mẫu web cho phép người dùng của bạn tải lên hình ảnh hoặc video, dữ liệu của tệp phương tiện trước tiên sẽ được gửi đến máy chủ của bạn và chỉ sau đó mới được tải lên Cloudinary

Một tùy chọn mạnh mẽ và hiệu quả hơn là cho phép người dùng của bạn tải hình ảnh và video trong mã phía máy khách của bạn trực tiếp từ trình duyệt lên Cloudinary thay vì đi qua máy chủ của bạn. Phương pháp này cho phép tải lên nhanh hơn và trải nghiệm người dùng tốt hơn. Nó cũng giảm tải từ máy chủ của bạn và giảm độ phức tạp của các ứng dụng PHP của bạn

Bạn có thể tải tệp trực tiếp lên từ trình duyệt bằng lệnh gọi có dấu hoặc chưa dấu đến điểm cuối tải lên, như minh họa trong ví dụ

Ngoài ra, bạn có thể sử dụng plugin jQuery của Cloudinary như được mô tả trong các phần sau

Để biết ví dụ hoạt động đầy đủ về cách sử dụng plugin tải lên jQuery, hãy xem dự án mẫu Album ảnh

Đối với các bản tải lên đã ký từ mã phía máy khách của bạn, mã phải được tạo trong mã PHP phía máy chủ của bạn. Bạn có thể sử dụng phương pháp

\Cloudinary\Uploader::upload("my_image.jpg")
9 để

\Cloudinary::api_sign_request($params_to_sign, $api_secret);

Bắt đầu bằng cách bao gồm các tệp JavaScript cần thiết. Plugin jQuery của Cloudinary cũng như plugin jQuery-File-Upload tùy thuộc vào. Chúng có sẵn trong thư mục js của thư viện JavaScript của Cloudinary

Bạn có thể trực tiếp bao gồm các tệp JavaScript




Trình cắm jQuery của Cloudinary yêu cầu thông số cấu hình bổ sung và

\Cloudinary\Uploader::upload_large("dog.mp4", [
  "resource_type" => "video,
  "public_id" => "myfolder/mysubfolder/dog_closeup",
  "chunk_size" => 6_000_000,
  "eager" => [
    ["width" => 300, "height" => 300, "crop" => "pad", "audio_codec" => "none"], 
    ["width" => 160, "height" => 100, "crop" => "crop", "gravity" => "south", "audio_codec => "none"]], 
  "eager_async" => TRUE, 
  "eager_notification_url" => "https://mysite.example.com/notify_endpoint"])
0 của bạn

Không bao giờ để lộ

\Cloudinary\Uploader::upload("my_image.jpg")
2 của bạn trong mã công khai phía máy khách

Để tự động thiết lập cấu hình của Cloudinary, hãy đưa dòng sau vào chế độ xem hoặc bố cục của bạn

Thư viện Cloudinary jQuery sử dụng thư viện Blueimp File Upload để hỗ trợ tải lên phương tiện trực tiếp từ trình duyệt. Bạn phải khởi tạo thư viện này một cách rõ ràng

$(function() {
  if($.fn.cloudinary_fileupload !== undefined) {
    $("input.cloudinary-fileupload[type=file]").cloudinary_fileupload();
  }
});

Tải lên trực tiếp từ trình duyệt được thực hiện bằng cách sử dụng các yêu cầu XHR (Ajax XMLHttpRequest‎) CORS (Chia sẻ tài nguyên gốc chéo). Để hỗ trợ các trình duyệt cũ hơn không hỗ trợ CORS, plugin jQuery chuyển đổi thành giải pháp dựa trên khung nội tuyến một cách duyên dáng. Giải pháp này yêu cầu đặt

\Cloudinary\Uploader::upload_large("dog.mp4", [
  "resource_type" => "video,
  "public_id" => "myfolder/mysubfolder/dog_closeup",
  "chunk_size" => 6_000_000,
  "eager" => [
    ["width" => 300, "height" => 300, "crop" => "pad", "audio_codec" => "none"], 
    ["width" => 160, "height" => 100, "crop" => "crop", "gravity" => "south", "audio_codec => "none"]], 
  "eager_async" => TRUE, 
  "eager_notification_url" => "https://mysite.example.com/notify_endpoint"])
2 trong thư mục chung của ứng dụng PHP của bạn. Tệp này có sẵn trong thư mục html của thư viện JavaScript của Cloudinary. Đoạn mã sau xây dựng một URL của tệp
\Cloudinary\Uploader::upload_large("dog.mp4", [
  "resource_type" => "video,
  "public_id" => "myfolder/mysubfolder/dog_closeup",
  "chunk_size" => 6_000_000,
  "eager" => [
    ["width" => 300, "height" => 300, "crop" => "pad", "audio_codec" => "none"], 
    ["width" => 160, "height" => 100, "crop" => "crop", "gravity" => "south", "audio_codec => "none"]], 
  "eager_async" => TRUE, 
  "eager_notification_url" => "https://mysite.example.com/notify_endpoint"])
2 cục bộ

if (array_key_exists('REQUEST_SCHEME', $_SERVER)) {   
  $cors_location = $_SERVER["REQUEST_SCHEME"] . "://" . $_SERVER["SERVER_NAME"] .
    dirname($_SERVER["SCRIPT_NAME"]) . "/cloudinary_cors.html";
} else {
  $cors_location = "https://" . $_SERVER["HTTP_HOST"] . "/cloudinary_cors.html";
}

Nhúng thẻ đầu vào tệp vào các trang HTML của bạn bằng một trong các phương pháp sau

  • \Cloudinary\Uploader::upload_large("dog.mp4", [
      "resource_type" => "video,
      "public_id" => "myfolder/mysubfolder/dog_closeup",
      "chunk_size" => 6_000_000,
      "eager" => [
        ["width" => 300, "height" => 300, "crop" => "pad", "audio_codec" => "none"], 
        ["width" => 160, "height" => 100, "crop" => "crop", "gravity" => "south", "audio_codec => "none"]], 
      "eager_async" => TRUE, 
      "eager_notification_url" => "https://mysite.example.com/notify_endpoint"])
    4. hình ảnh
  • \Cloudinary\Uploader::upload_large("dog.mp4", [
      "resource_type" => "video,
      "public_id" => "myfolder/mysubfolder/dog_closeup",
      "chunk_size" => 6_000_000,
      "eager" => [
        ["width" => 300, "height" => 300, "crop" => "pad", "audio_codec" => "none"], 
        ["width" => 160, "height" => 100, "crop" => "crop", "gravity" => "south", "audio_codec => "none"]], 
      "eager_async" => TRUE, 
      "eager_notification_url" => "https://mysite.example.com/notify_endpoint"])
    5. hình ảnh hoặc video

Ví dụ sau thêm trường nhập tệp cho hình ảnh vào biểu mẫu của bạn. Việc chọn hoặc kéo tệp vào trường nhập liệu này sẽ tự động bắt đầu quá trình tải lên từ trình duyệt lên Cloudinary

   $cors_location]); ?>

Khi quá trình tải lên hoàn tất, mã định danh của hình ảnh đã tải lên được đặt làm giá trị của trường nhập ẩn của tên bạn đã chọn (e. g. , 'image_id' trong ví dụ trên)

Giờ đây, bạn có thể hiển thị hình ảnh được tải lên trực tiếp giống như cách bạn sẽ hiển thị bất kỳ hình ảnh được lưu trữ trên Cloudinary nào khác

 "jpg", "crop" => "fill", "width" => 120, "height" => 80]); ?>

Ví dụ sau hiển thị trường nhập tệp tải lên trực tiếp bằng phương pháp trình trợ giúp

\Cloudinary\Uploader::upload_large("dog.mp4", [
  "resource_type" => "video,
  "public_id" => "myfolder/mysubfolder/dog_closeup",
  "chunk_size" => 6_000_000,
  "eager" => [
    ["width" => 300, "height" => 300, "crop" => "pad", "audio_codec" => "none"], 
    ["width" => 160, "height" => 100, "crop" => "crop", "gravity" => "south", "audio_codec => "none"]], 
  "eager_async" => TRUE, 
  "eager_notification_url" => "https://mysite.example.com/notify_endpoint"])
5. Mặc dù
\Cloudinary\Uploader::upload_large("dog.mp4", [
  "resource_type" => "video,
  "public_id" => "myfolder/mysubfolder/dog_closeup",
  "chunk_size" => 6_000_000,
  "eager" => [
    ["width" => 300, "height" => 300, "crop" => "pad", "audio_codec" => "none"], 
    ["width" => 160, "height" => 100, "crop" => "crop", "gravity" => "south", "audio_codec => "none"]], 
  "eager_async" => TRUE, 
  "eager_notification_url" => "https://mysite.example.com/notify_endpoint"])
7 mặc định cho phương pháp này là
\Cloudinary\Uploader::upload_large("dog.mp4", [
  "resource_type" => "video,
  "public_id" => "myfolder/mysubfolder/dog_closeup",
  "chunk_size" => 6_000_000,
  "eager" => [
    ["width" => 300, "height" => 300, "crop" => "pad", "audio_codec" => "none"], 
    ["width" => 160, "height" => 100, "crop" => "crop", "gravity" => "south", "audio_codec => "none"]], 
  "eager_async" => TRUE, 
  "eager_notification_url" => "https://mysite.example.com/notify_endpoint"])
8, loại
\Cloudinary\Uploader::upload_large("dog.mp4", [
  "resource_type" => "video,
  "public_id" => "myfolder/mysubfolder/dog_closeup",
  "chunk_size" => 6_000_000,
  "eager" => [
    ["width" => 300, "height" => 300, "crop" => "pad", "audio_codec" => "none"], 
    ["width" => 160, "height" => 100, "crop" => "crop", "gravity" => "south", "audio_codec => "none"]], 
  "eager_async" => TRUE, 
  "eager_notification_url" => "https://mysite.example.com/notify_endpoint"])
9 được xác định rõ ràng và các biến đổi háo hức không đồng bộ được sử dụng để tạo nội dung phát trực tuyến tốc độ bit thích ứng. Tham số
\Cloudinary::api_sign_request($params_to_sign, $api_secret);
0 được sử dụng để bao gồm các tham số HTML tiêu chuẩn (trong trường hợp này là thuộc tính
\Cloudinary::api_sign_request($params_to_sign, $api_secret);
1) trong thẻ được tạo

cl_upload_tag('video_id', [
  "resource_type" => "video", 
  "eager" => [["streaming_profile" => "full_hd", "format" => "m3u8"]], 
  "eager_async" => true, 
  "eager_notification_url" => "https://mysite.example.com/notify_endpoint", 
  "html" => ["id" => "my_upload_tag"]]);

Thư viện jQuery của Cloudinary cũng cho phép trải nghiệm tải lên nâng cao với các tùy chọn như hiển thị thanh tiến trình, hiển thị hình thu nhỏ của hình ảnh đã tải lên, hỗ trợ kéo và thả, tải lên nhiều tệp, v.v.

Ví dụ: liên kết với sự kiện

\Cloudinary::api_sign_request($params_to_sign, $api_secret);
2 của Cloudinary nếu bạn muốn được thông báo khi quá trình tải lên Cloudinary hoàn tất. Bạn sẽ có quyền truy cập vào các chi tiết đầy đủ của hình ảnh đã tải lên và bạn có thể hiển thị hình thu nhỏ do đám mây tạo ra cho các hình ảnh đã tải lên bằng cách sử dụng plugin jQuery của Cloudinary. Đoạn mã sau tạo hình thu nhỏ 150x100 của hình ảnh đã tải lên và cập nhật trường đầu vào với ID công khai của hình ảnh này

Làm cách nào để kiểm tra xem tệp có phải là hình ảnh trong PHP không?

Hàm getimagesize của php cung cấp nhiều thông tin về tệp hình ảnh , bao gồm cả loại tệp . Loại có thể được sử dụng để kiểm tra xem tệp có phải là tệp hình ảnh hợp lệ hay không. $a[0] và $a[1] là chiều rộng và chiều cao của hình ảnh.

Làm cách nào để kiểm tra loại video trong PHP?

mov. video/quicktime $fileType = substr($fileType, strpos($fileType, ". ") + 2 ); //xóa bỏ đường dẫn tệp -> video/quicktime $fileType = substr($fileType, 0,strpos($fileType, "/")); //xóa bỏ .

Làm cách nào để phát hiện loại tệp trong PHP?

Hàm filetype() trả về loại tệp của một tệp.

Làm cách nào để biết loại tệp video là gì?

Tệp video của tôi là định dạng tệp nào? . Trên Windows, nhấp chuột phải vào tệp và nhấp vào “Properties”. Trong tab “Chi tiết”, bạn sẽ thấy định dạng tệp và codec được sử dụng. right-click the video file and click “Get Info”, then under “More Info” you should see both the video and audio codec. On Windows, right-click the file and click “Properties”. Under the “Details” tab you will see the file format and codecs used.