5

我正在使用Trumbowyg,这是一个所见即所得的 JavaScript 编辑器,它具有从粘贴的 URL 呈现图像的功能。它还有一个上传插件,可以上传本地图像和自定义服务器端处理。

我的 python/django 函数upload_image()可以成功检测到上传的图像 - 但是当我使用 URL 图像输入时,我的 python 函数无法检测到它。Trumbowyg 无需通过我的 python 后端即可简单地渲染图像。

这是我的代码:

$('#id_content').trumbowyg({
    btnsDef: {
        // Create a new dropdown
        image: {
            dropdown: ['insertImage', 'upload'],
            ico: 'insertImage'
        }
    },
    // Redefine the button pane
    btns: [
        ['strong', 'em', 'del'],
        ['link'],
        ['image'], // Our fresh created dropdown
    ],
    plugins: {
        // Add imagur parameters to upload plugin for demo purposes
        upload: {
            serverPath: '/upload_image/',
            fileFieldName: 'content_image',
            urlPropertyName: 'url'
        }
    }
});
def upload_image(request):
    print('Success') #only prints when I use the upload input, not the URL input

为什么in能检测到上传的图片,但不能检测到URL输入?

4

1 回答 1

4

如前所述,如果用户使用 URL 上传图像,Trumpowyg 不会将 URL 发送到后端。

但是,如果您真的想在自己的服务器上托管图像,有一种方法可以做到这一点。

当用户提交表单时,您将在后端收到 textarea 的内容。然后您可以阅读内容并查找<img src="...">标签。

此时,您可以检查该src值是否不以您的 S3 存储桶主机名开头,您可以使用urllibrequests库下载该图像,将其保存到您的存储桶并替换该src值。

由于提交的数据将采用 HTML 格式,请查看优秀的Beautiful Soup。它将使解析 HTML 变得容易。

于 2018-07-12T13:22:13.530 回答