我正在使用File Picker来处理我的Web应用程序的文件。在我的前端应用程序中,我有文件句柄的URL(例如https://www.filepicker.io/api/file/H7KYuWy1S3e1qvG2M66i),但我没有完整的inkBlob。
该文件是图像,我想对此文件进行转换操作。在调用convert函数时,我似乎需要包含mimetype。
取自文件选择器的API documentation on convert,这有效:
var inkblob = {
url: 'https://www.filepicker.io/api/file/H7KYuWy1S3e1qvG2M66i',
filename: 'customers.jpg', mimetype: 'image/jpeg',
isWriteable: false, size: 629454
};
var result = document.getElementById("convert-result");
filepicker.convert(inkblob, {width: 200, height: 200},
function(new_InkBlob){
console.log(new_InkBlob.url);
result.src = new_InkBlob.url;
}
);
相同的代码适用于这样的墨迹:
var inkblob = {
url: 'https://www.filepicker.io/api/file/H7KYuWy1S3e1qvG2M66i',
mimetype: 'image/jpeg',
};
但是,如果您排除mimetype并且仅包含url,则转换不起作用。
在我的情况下,它要求我先对文件句柄进行一次stat调用,从File Picker的API中检索mimetype,然后在执行convert命令时将mimetype发送回filepicker。
是否有可能使mimetype省略,如果转换命令中没有包含mimetype,文件选择器会在内部查找?
答案 0 :(得分:0)
对于convert()方法,mimetype只是一个安全检查,以确保您传递图像。如果你传递'image / jpeg',即使它不是图像的正确mimetype,它应该工作得很好。所以每次都不需要stat文件。
答案 1 :(得分:0)
对于想要回答这个问题的其他人,以下是我们通过邮件传达的更多信息:
他们给邮件的答案:
对于convert()方法,mimetype只是一个安全检查,以确保您 传递图像。如果你传递'image / jpeg',即使它不正确 图像的mimetype,它应该工作得很好。所以不需要统计 每次都提交。
我的回答:
嗨,谢谢你的回答。
听起来像是在调用mimetype时包含了mimetype convert()函数是多余的。你告诉我,我应该能够 简单地传入一个固定的mimetype,因此我看不出它是如何有用的 安全检查。如果要确保执行convert命令 在图像文件选择器已经知道文件具有哪种mimetype和我 相信这应该在convert()命令时在内部处理 执行不信任客户端对文件的mimetype的声明。
我没试过这个;但如果我使用转换命令会发生什么 mimetype在文本文件中设置为'image / jpeg'?我想它会失败 这是我想到这个mimetype要求的另一个原因 convert命令已过时。
来自filepicker的回答:
这实际上只是对意外传递文件的基本保护 除了图像到转换调用。我知道这可能是多余的 对你而言,它在95%的情况下有效,我们从来没有遇到过这个问题。