filepicker.io - 墨迹文件选择器回调调用过早。如何检测文件何时可用?

标签 filepicker.io

使用 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/

相关文章:

Filepicker.io Web - 禁用内联样式

jquery - Rails & FilePicker gem - 如何获取上传文件的元数据?

filepicker.io-convert()和存储vs FPUrl转换

filepicker.io - 使用单个 convert() 操作调整图像大小和裁剪图像

ios - 使用 cordova 在 iOS 中播放图库中的视频

javascript - filepicker.io 将选项添加到 makedrop Pane

ios - filepicker.io 与 IOS 上的电话差距

filepicker.io - 如何让 filepicker 和 turbolinks 一起玩得很好?

google-app-engine - 如何将 filepicker.io 与谷歌应用引擎 (blobstore) 集成?

javascript - Aviary 编辑器加载空白图像,直到调整屏幕大小