天天看點

word圖檔上傳到伺服器

word圖檔上傳到伺服器

參考:http://blog.ncmem.com/wordpress/2019/08/07/word%e5%9b%be%e7%89%87%e4%b8%8a%e4%bc%a0%e5%88%b0%e6%9c%8d%e5%8a%a1%e5%99%a8/​

轉載後,簡單改編為支援自動上傳到伺服器

umeditor.js下面代碼中:

 me.addListener('ready', function () {

        if (window.FormData && window.FileReader) {

            var autoUploadHandler = function (e) {

                debugger;

                 var hasImg = false,

                    items;

                //擷取粘貼闆檔案清單或者拖放檔案清單

                items = e.type == 'paste' ? getPasteImage(e.originalEvent) : getDropImage(e.originalEvent);

                if (items) {

                    var len = items.length,

                        file;

                    while (len--) {

                        file = items[len];

                        if (file.getAsFile) file = file.getAsFile();

                        if (file && file.size > 0 && /image\/\w+/i.test(file.type)) {

                            sendAndInsertImage(file, me);

                            hasImg = true;

                        }

                    }

                    if (hasImg) return false;

                } 

                else{

           // word裡面的圖檔不會當做圖檔,而是text/plain, 用getPasteImage 擷取不到

 / /todo 目前隻是支援單個圖檔,不包含文字的,支援圖檔的,需要再修改下代碼。稍等。

                    var text = e.originalEvent.clipboardData.getData("text");

                    if(text == ""){

                    var items=e.originalEvent.clipboardData.items;

                     for (var i = 0, len = items.length; i < len; i++) {

                        var item = items[i];

                       if ( item.kind == 'file' && item.type.indexOf('image/') !== -1 ) {

                            if (item.getAsFile) file = item.getAsFile();

                              var blob = item.getAsFile();

                                  sendAndInsertImage(blob,me); //上傳到伺服器 

                              //阻止預設事件, 避免重複添加;

                              e.originalEvent.preventDefault();

                             };

                        }

                    }

                }

            };

            me.getOpt('pasteImageEnabled') && me.$body.on('paste', autoUploadHandler);

            me.getOpt('dropFileEnabled') && me.$body.on('drop', autoUploadHandler);

            //取消拖放圖檔時出現的文字光标位置提示

            me.$body.on('dragover', function (e) {

                if (e.originalEvent.dataTransfer.types[0] == 'Files') {

                    return false;

                }

            });

下一篇: git cherry-pick