pasteイベントを使用して、excelテーブルからWebページに画像をコピーします.

2321 ワード

pasteイベントを使用して、excelテーブルからWebページに画像をコピーしますが、実際には他のWebページの、画像をコピーすることもできます.Extjsコードは次のとおりです.
Ext.EventManager.addListener(Ext.getBody(), "paste", this.onPaste, this);

 onPasteの実装
onPaste: function (e) {
        e.stopPropagation();
        e.preventDefault();

        var ext = this.owner.explorer.selNode.attributes.ext;
        var app = Weoso.ApplicationTypes[ext];

        if (!app || !app.imageUploadType) {
            return;
        }

        var k=0;

        var items = e.browserEvent.clipboardData.items;
        var files = [];
        var f;
        for (var i = 0; i < items.length; ++i) {
            if (items[i].kind == 'file' &&
                items[i].type.indexOf('image/') !== -1) {
                f = items[i].getAsFile();
                f.name = "." + items[i].type.substring(6).toLowerCase();
                files.push(f);
                break;
            }
        }
        if (files.length) {
            Ext.MessageBox.show({
                title: "weOSo",
                msg: "           (     )",
                buttons: Ext.MessageBox.OKCANCEL,
                fn: function (e, text) {
                    if(e=="ok"){
                        this.uploader.show();
                        f.name = text+ f.name;
                        this.uploader.invokeUploader(files, app.imageUploadType);
                    }
                },
                minWidth: Ext.MessageBox.minPromptWidth,
                scope: this,
                prompt: true
            });
        }

    }

 このとき,コピー画像のBlobモードのデータを得ることができる.
結合http://openxtiger.iteye.com/blog/1830800 この文章は、画像のアップロードを実現することができます.
 
注意:Blobファイルタイプのファイル名はデフォルトで:blobなので、画像を自分のファイル名に設定する場合は、FormDataのappendの3つのパラメータごとに入力できます.
void append(DOMString name, Blob value, optional DOMString filename);