1

我正在使用 ckeditor 和 ckeditor 的 uploadimage 插件,它们可以帮助我在粘贴或拖放到 ckeditor 时上传图像。但是,当我从包含一些图像的 word 中复制内容并将其粘贴到 ckeditor 时,它并没有上传该图像,因为它除了图像之外还有很多其他的东西。现在粘贴后我有来自用户本地的图像路径。我可以使用 ckeditor 或通过 javascript 从用户的本地路径将这些文件上传到我的服务器吗?

http://docs.ckeditor.com/#!/guide/dev_file_upload这是我正在谈论的插件。

4

2 回答 2

3

不,JavaScript 无法访问您的本地驱动器。uploadimage处理从浏览器获取的 HTML,它取决于浏览器、操作系统,在这种情况下,还取决于 MS Word 的版本。JavaScript 从剪贴板 API 获取数据,如果将返回本地路径而不是真实数据,并且没有文件,那么什么都做不了。

但要确保您可以检查dataTransfer包含的内容。可能不仅有 HTML,还有可以上传的文件。添加粘贴侦听器:

editor.on( 'paste', function( evt ) {
    console.log( evt.data.dataTransfer.getData( 'text/html' ) );
    console.log( evt.data.dataTransfer.getFilesCount() );
} );

如果它包含文件,您可以使用fileLoader上传它,并且在上传完成后,将本地路径替换为服务器上图像的路径。

于 2015-07-31T09:41:56.160 回答
2

正如 Piotr 所说,Javascript 不能直接读取本地文件,否则将是一个巨大的安全问题。

我所知道的关于从 MS Word 粘贴图像的最佳解决方法是使用 Word 中的图像插件来检测这些图像并提示用户通过复制和粘贴来上传它们。

它对你来说可能并不重要,但另一个好处是它不需要你更改 CKEditor 的版本,因为它适用于任何 CKEditor 4.x

于 2015-08-01T22:37:18.873 回答