有客自远方来52 2024-08-05 09:53 采纳率: 15.3%
浏览 7
已结题

为什么markdown页面不能返回图片路径?

以下是我的代码,我想用markdown上传本地图片到腾讯cos桶中,但目前问题是markdown上传图片没反应,image_url收到了,腾讯对象存储也有图片,我打印了图片路径也能收到,就是markdown页面报错没反应,后端一切正常,是引入的插件问题还是代码问题,markdown正常编辑文本没有问题,上传图片就开始报错,我该如何修改
PYTHON代码

@csrf_exempt
def wiki_upload(request, project_id):
    """ markdown插件上传图片 """
    result = {
        'success': 0,
        'message': None,
        'url': None
    }

    image_object = request.FILES.get('editormd-image-file')
    if not image_object:
        result['message'] = "文件不存在"
        return JsonResponse(result)

    ext = image_object.name.rsplit('.')[-1]
    key = "{}.{}".format(uid(request.tracer.user.mobile), ext)
    image_url = upload_file(
        request.tracer.project.bucket,
        request.tracer.project.region,
        image_object,
        key
    )
    result['success'] = 1
    result['url'] = image_url
    return JsonResponse(result)

def upload_file(bucket, region, file_object, key):
    config = CosConfig(Region=region, SecretId=settings.TENCENT_COS_ID, SecretKey=settings.TENCENT_COS_KEY)
    client = CosS3Client(config)

    response = client.upload_file_from_buffer(
        Bucket=bucket,
        Body=file_object,  # 文件对象
        Key=key  # 上传到桶之后的文件名
    )

    # https://wangyang-1251317460.cos.ap-chengdu.myqcloud.com/p1.png

    return "https://{}.cos.{}.myqcloud.com/{}".format(bucket, region, key)

前端markdown初始化代码

var WIKI_UPLOAD_URL = "{% url 'wiki_upload' project_id=request.tracer.project.id %}"

$(function () {
    initEditorMd();
});

function initEditorMd() {
    editormd('editor', {
        placeholder:"请输入内容······",
        height:500,
        path:"{% static 'plugins/editor.md/lib/' %}",
        imageUpload:true,
        imageFormats:["jpg",'jpeg','png','gif'],
        imageUploadURL:WIKI_UPLOAD_URL
    })
}

页面返回错误

img

  • 写回答

1条回答 默认 最新

  • 码农阿豪@新空间代码工作室 Java领域优质创作者 2024-08-06 09:28
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    针对您的问题,可能是前端markdown插件配置的问题导致图片上传没有反应。您可以尝试以下几点进行修改:
    1. 确保前端markdown插件路径配置正确,可以尝试手动在浏览器控制台输入图片上传的URL进行测试。
    2. 检查前端markdown插件的imageUploadURL是否正确配置,确保URL与后端接口地址一致。
    3. 确认前端插件支持的图片格式是否符合您的实际需求,如需要上传的图片格式与插件配置不匹配可能导致无法上传。
    4. 检查可能存在的浏览器插件冲突或浏览器设置问题,尝试在其他浏览器或清除浏览器缓存后再进行上传测试。 另外,您也可以检查后端接口是否有收到前端的图片上传请求,并且成功返回图片地址。如果确保后端接口正常工作,那么问题可能出在前端markdown插件配置上。 以下是一个示例的前端markdown插件配置,您可以参考进行调整:
    var WIKI_UPLOAD_URL = "{% url 'wiki_upload' project_id=request.tracer.project.id %}";
    $(function () {
        initEditorMd();
    });
    function initEditorMd() {
        editormd('editor', {
            placeholder: "请输入内容······",
            height: 500,
            path: "{% static 'plugins/editor.md/lib/' %}",
            imageUpload: true,
            imageFormats: ["jpg", "jpeg", "png", "gif"],
            imageUploadURL: WIKI_UPLOAD_URL
        })
    }
    

    您可以根据以上建议进行调整,并在浏览器控制台查看是否有相关错误信息输出,帮助您更好地定位问题及解决。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 8月22日
  • 创建了问题 8月5日

悬赏问题

  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程
  • ¥20 求这个的原理图 只要原理图
  • ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
  • ¥20 微信的店铺小程序如何修改背景图
  • ¥15 UE5.1局部变量对蓝图不可见
  • ¥15 一共有五道问题关于整数幂的运算还有房间号码 还有网络密码的解答?(语言-python)
  • ¥20 sentry如何捕获上传Android ndk 崩溃
  • ¥15 在做logistic回归模型限制性立方条图时候,不能出完整图的困难
  • ¥15 G0系列单片机HAL库中景园gc9307液晶驱动芯片无法使用硬件SPI+DMA驱动,如何解决?