Theo docs, contentType là tùy chọn và , nó sẽ cố gắng xác định loại mime chính xác dựa trên đuôi tệp. Tuy nhiên, nó không bao giờ dường như đoán mime-type và luôn luôn mặc định là application/octet-streamCác tệp S3 của Amazon được tải lên bằng AWS SDK cho PHP luôn là “application/octet-stream”?
Dưới đây là mã của tôi:
$s3 = new AmazonS3();
$opt = array( 'fileUpload' => $_FILES['file']['tmp_name'],
'storage' => Amazons3::STORAGE_REDUCED);
$r = $s3->create_object('mybucket', $_FILES['file']['name'], $opt);
Dưới đây là một ảnh chụp màn hình của giao diện điều khiển AWS của tôi:
Làm cách nào để bạn thực sự tự động đặt Loại nội dung phù hợp mà không đặt tùy chọn contentType, hoặc bạn có thực sự phải đặt thủ công không?
Thông tin bổ sung: Nếu tôi tải xuống tệp từ bảng điều khiển (mà ban đầu tôi tải lên qua SDK), sau đó tải lên lại bằng bảng điều khiển, Loại nội dung phù hợp được đặt (ví dụ: hình ảnh/gif cho tệp GIF thay vì đăng ký/octet-stream)
Có Tôi luôn có thể đặt contentType nhưng có nghĩa là tài liệu nói rằng nó được thực hiện tự động: * Nếu tệp đang được tải lên qua tệpTải lên dưới dạng đường dẫn hệ thống tệp, tệp sẽ cố gắng xác định đúng loại dựa trên mime trên tiện ích mở rộng tệp. * nhưng điều đó không xảy ra vì vậy có thể có lỗi. – IMB
'ContentType' với vốn' C'. Nếu không nó không hiệu quả với tôi. –
Câu trả lời ở trên đã hiệu quả đối với tôi cho đến khi tôi chuyển sang SDK mới. Tôi không thể làm cho nó hoạt động nữa: http://stackoverflow.com/questions/21892352/specify-content-type-in-aws-phps-upload-function –