我使用DropzoneJS将文件直接上传到S3 。当他们添加我的文件时,我使用我的后端来检查mime类型并创建S3签名。当我说添加I文件时,我只是意味着它已将其添加到Dropzone队列中,因此该文件尚未上传但它只是将有关该文件的元数据发送到/upload/sign
网址
this.on('addedfile', function (file) {
$.get('/upload/sign', {
name: file.name,
size: file.size,
type: file.type,
}).done(function (response) {
myDropzone.options.url = response.attributes.action;
file.additionalData = response.additionalData;
myDropzone.processFile(file);
}).fail(function (response) {
var data = JSON.parse(response.responseText);
myDropzone.emit('error', file, data);
});
});
这一切都很好!问题是文件的mime类型仅由文件扩展名决定,因此我很乐意将文件从image.jpg
重命名为image.mp3
,而file.type
将audio/mp3
}。我想这对于浏览器警告是好的,但如果我想要播放这个mp3或者我最终想要处理音频的话就不行!
有没有办法告诉文件的REAL mime类型,而不必将上传直接传递给服务器文件系统?我需要直接上传到S3,因此无法通过EC2。