【问题标题】:Upload files from users local path using ckeditor?使用ckeditor从用户本地路径上传文件?
【发布时间】:2015-10-22 22:13:55
【问题描述】:

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

http://docs.ckeditor.com/#!/guide/dev_file_upload这就是我说的插件。

【问题讨论】:

    标签: javascript browser ckeditor browser-security


    【解决方案1】:

    没有。 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 上传它,上传完成后,将本地路径替换为服务器上图像的路径。

    【讨论】:

    • 感谢 Piotr,它确实有帮助。
    【解决方案2】:

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

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

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

    【讨论】:

    • 非常感谢阿方索。这个插件对我有很大帮助。
    猜你喜欢
    • 2020-10-13
    • 1970-01-01
    • 2013-08-17
    • 1970-01-01
    • 2011-06-21
    • 2015-12-24
    • 1970-01-01
    • 2012-05-18
    • 1970-01-01
    相关资源
    最近更新 更多