使用 filepicker.io 上传文件时,会在文件实际可用之前调用 filepicker.pick 成功回调。这是代码:
filepicker.pick({
mimetypes: ['image/*'],
container: 'modal',
services:['COMPUTER', 'FACEBOOK', 'INSTAGRAM', 'WEBCAM']
},
function(inkBlob){
$('img.foo').attr('src', inkBlob.url);
},
function(FPError){
console.log(FPError.toString());
});
我在回调中的inkBlob 中得到一个url,但有时如果我将该url 插入dom(如上),我得到一个404。其他时候它有效。我正在寻找一种可靠的方法来了解何时可以使用 filepicker 返回的文件。我认为成功回调就是这样,但似乎存在这种竞争条件。
我意识到我可以将成功回调包装在 setTimeout 中,但这看起来很困惑,如果文件实际可用,我不想让用户等待。
最佳答案
您还可以使用事件监听器。
我有一个 ajax 调用,它在被 Ink 裁剪后下载图像。此调用偶尔失败。我通过大致执行以下操作来修复它:
filepicker.convert(myBlob,
{
crop: cropDimensions
},
function(croppedBlob) {
function downloadImage() {
...
}
var imageObj = new Image();
imageObj.onLoad(downloadImage()); //only download when image is there
imageObj.src = croppedBlob.url;
}
);
关于filepicker.io - 墨迹文件选择器回调调用过早。如何检测文件何时可用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18114166/