使用ckeditor从用户本地路径上传文件?
Upload files from users local path using ckeditor?
我正在使用 ckeditor 的 ckeditor 和 uploadimage 插件,它们可以帮助我在粘贴或拖放到 ckeditor 上时上传图像。但是当我从有一些图像的 word 中复制内容并将其粘贴到 ckeditor 上时,它不会上传该图像,因为它除了图像之外还有很多其他东西。现在粘贴后我有来自用户本地的图像路径。我可以使用 ckeditor 或通过 javascript 从用户的本地路径将这些文件上传到我的服务器吗?
没有。 JavaScript 无法访问您的本地驱动器。 uploadimage
handle 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 所说,Javascript 不能直接读取本地文件,否则将是一个巨大的安全问题。
据我所知,从 MS Word 粘贴图像的最佳解决方法是使用 Images From Word 插件来检测这些图像并提示用户通过复制和粘贴来上传它们。
它对你来说可能不重要,但另一个好处是它不需要你更改 CKEditor 的版本,因为它可以与任何 CKEditor 4.x
我正在使用 ckeditor 的 ckeditor 和 uploadimage 插件,它们可以帮助我在粘贴或拖放到 ckeditor 上时上传图像。但是当我从有一些图像的 word 中复制内容并将其粘贴到 ckeditor 上时,它不会上传该图像,因为它除了图像之外还有很多其他东西。现在粘贴后我有来自用户本地的图像路径。我可以使用 ckeditor 或通过 javascript 从用户的本地路径将这些文件上传到我的服务器吗?
没有。 JavaScript 无法访问您的本地驱动器。 uploadimage
handle 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 所说,Javascript 不能直接读取本地文件,否则将是一个巨大的安全问题。
据我所知,从 MS Word 粘贴图像的最佳解决方法是使用 Images From Word 插件来检测这些图像并提示用户通过复制和粘贴来上传它们。
它对你来说可能不重要,但另一个好处是它不需要你更改 CKEditor 的版本,因为它可以与任何 CKEditor 4.x