Cách lấy phần mở rộng hình ảnh từ base64 trong php

Mọi người từ các ngôn ngữ kịch bản khác luôn nghĩ rằng ngôn ngữ của họ tốt hơn vì họ có chức năng tích hợp sẵn để làm điều đó chứ không phải PHP [tôi đang xem Pythonistas ngay bây giờ. -]]

Thực tế nó có tồn tại nhưng ít người biết. Gặp gỡ pathinfo[]

$ext = pathinfo[$filename, PATHINFO_EXTENSION];

Điều này là nhanh chóng và tích hợp sẵn. pathinfo[] có thể cung cấp cho bạn thông tin khác, chẳng hạn như đường dẫn chính tắc, tùy thuộc vào hằng số bạn chuyển đến nó

Hãy nhớ rằng nếu bạn muốn có thể xử lý các ký tự không phải ASCII, trước tiên bạn cần đặt ngôn ngữ. e. G

setlocale[LC_ALL,'en_US.UTF-8'];

Ngoài ra, lưu ý rằng điều này không tính đến nội dung tệp hoặc loại mime, bạn chỉ nhận được phần mở rộng. Nhưng đó là những gì bạn yêu cầu

Cuối cùng, lưu ý rằng điều này chỉ hoạt động đối với đường dẫn tệp, không phải đường dẫn tài nguyên URL, được bao phủ bằng PARSE_URL

Vui thích

Javascript – Cách bạn mã hóa một chuỗi thành Base64 trong JavaScript

Bạn có thể sử dụng btoa[]

setlocale[LC_ALL,'en_US.UTF-8'];
0 để chuyển đổi sang và từ mã hóa base64

Dường như có một số nhầm lẫn trong các nhận xét về những gì các chức năng này chấp nhận/trả lại, vì vậy…

  • btoa[] chấp nhận một “chuỗi” trong đó mỗi ký tự đại diện cho một byte 8 bit – nếu bạn chuyển một chuỗi chứa các ký tự không thể được biểu thị bằng 8 bit,. Đây không phải là vấn đề nếu bạn thực sự coi chuỗi là một mảng byte, nhưng nếu bạn đang cố gắng làm điều gì đó khác thì bạn sẽ phải mã hóa nó trước

  • setlocale[LC_ALL,'en_US.UTF-8'];
    
    0 trả về một “chuỗi” trong đó mỗi ký tự đại diện cho một byte 8 bit – nghĩa là giá trị của nó sẽ nằm trong khoảng từ
    $extension = explode['/', mime_content_type[$base64_encoded_string]][1];
    
    2 đến
    $extension = explode['/', mime_content_type[$base64_encoded_string]][1];
    
    3. Điều này không có nghĩa là nó là ASCII – có lẽ nếu bạn đang sử dụng chức năng này, bạn sẽ làm việc với dữ liệu nhị phân chứ không phải văn bản

Xem thêm

  • Làm cách nào để tải dữ liệu hình ảnh nhị phân bằng Javascript và XMLHttpRequest?

Hầu hết các bình luận ở đây đã lỗi thời. Bạn có thể sử dụng cả btoa[]

setlocale[LC_ALL,'en_US.UTF-8'];
0, trừ khi bạn hỗ trợ các trình duyệt thực sự lỗi thời

Nếu bạn biết một lượng tối thiểu về cấu trúc định dạng tệp, về mặt lý thuyết, bạn có thể xem xét các byte trên cùng của tệp cho đến khi bạn có thể tìm ra loại tệp đó.

Nội dung chính Hiển thị

Ví dụ: ảnh GIF luôn bắt đầu bằng byte sau

setlocale[LC_ALL,'en_US.UTF-8'];
5. Nếu bạn có thể tìm thấy chuỗi đó ở đầu tệp, bạn có thể chắc chắn một cách hợp lý rằng đó là ảnh GIF và hoàn toàn chắc chắn rằng đó không phải là bất kỳ định dạng ảnh nào khác. [tuy nhiên, nó vẫn có thể là một tệp văn bản, điều đó chỉ xảy ra khi bắt đầu bằng 'GIF89a'; bạn phải phân tích cú pháp nhiều tệp hơn để hoàn toàn chắc chắn]

Tương tự như vậy, các tệp PNG có chuỗi

setlocale[LC_ALL,'en_US.UTF-8'];
6 khá gần đầu [không hoàn toàn ngay từ đầu; một lần nữa, bạn cần nghiên cứu các chi tiết cụ thể về định dạng tệp để giúp bạn xác định mức độ bạn cần biết để chắc chắn]

JPEG cũng chứa các chuỗi dễ nhận biết trong tiêu đề của chúng, mặc dù chúng đa dạng và phức tạp hơn. Bạn có thể muốn tìm chuỗi

setlocale[LC_ALL,'en_US.UTF-8'];
7

Nhận các định nghĩa định dạng tệp chắc chắn sẽ mang lại cho bạn độ chính xác cao hơn, nhưng tùy thuộc vào mức độ chính xác mà bạn cần, bạn có thể tìm hiểu đủ về các định dạng tệp chỉ bằng cách mở một số tệp hình ảnh trong trình chỉnh sửa nhị phân để xem cách chúng được cấu trúc

Những tài nguyên này có thể giúp bạn

  • http. //www. w3. org/Đồ họa/JPEG/

  • http. //www. w3. org/Đồ họa/PNG/

Trong hướng dẫn này, chúng tôi sẽ cho bạn biết cách xử lý hình ảnh được mã hóa bằng Base64 và ghi hình ảnh vào thư mục.
Trong khi chúng tôi làm việc với API cho ứng dụng web hoặc thiết bị di động, Bạn sẽ nhận thấy rằng họ sẽ gửi định dạng hình ảnh được mã hóa Base64. Vì vậy, trong trường hợp đó, bạn sẽ cần di chuyển hình ảnh được mã hóa Base64 sang máy chủ dưới dạng tệp hình ảnh. và phải lưu vào thư mục

Ví dụ lõi PHP

 

Tải base64 lên tệp trong Codeigniter

Bạn đang tìm cách lưu phía máy chủ hình ảnh PNG, từ chuỗi dữ liệu base64 hoặc không thể tải lên hình ảnh được mã hóa base64 bằng Codeigniter?

Chúng tôi đang tạo một số chức năng để sử dụng kiểm tra chuỗi base64 có hợp lệ hay không, kích thước và loại tệp

tạo ứng dụng tệp/thư viện/Base64fileUploads. php

Chủ Đề