ckeditor_uploader动态图像上传路径

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ckeditor_uploader动态图像上传路径相关的知识,希望对你有一定的参考价值。

我有一个Django应用程序,要求用户每个文档上传多个图像。该应用程序已安装django-ckeditor,但上传的图像最终位于CKEDITOR_UPLOAD_PATH设置所设置的同一文件夹中。基于URL方案,我希望路径是动态的。

例如,上传到https://myapp/report/1/finding/5上的CKEditor实例的图像应该位于/ckeditor_base_path/report/1/finding/5/my_img.png中。

不幸的是,在视图创建CKEditorUploadingWidget参数之前,窗口小部件(context)设置了处理设置路径的视图函数的URL。

我希望将参数URL参数发送到ImageUploadView进行处理。非常感谢任何帮助或建议。

答案

万一它可以帮助其他人,这就是我所做的。当用户浏览时,他们将被限制在具有查找图像的文件夹中,因为它们特定于报告的该部分。同样,上传图像会将其发送到同一文件夹。

简而言之,您必须:

  1. 将CKEditor上传器URL指向您的视图版本
  2. 通过相应的表单视图更新CKEditor Uploader小部件
  3. 覆盖CKEditor上传器ImageUploadViewbrowse视图以创建所需的路径

例子

Updated CKEditor URL Paths

path('myapp/<int:org_id>/report/<int:report_id>/finding/<int:finding_id>/image/upload', never_cache(ck_views.upload),
path('myapp/<int:org_id>/report/<int:report_id>/finding/<int:finding_id>/images', never_cache(ck_views.browse), name='ckeditor_browse'),

Widget Update

def get(self, request, *args, **kwargs):
        context = {}
        obj = self.get_object()
        if obj is not None:
            context['org'] = obj.report.org.id
            form = FindingForm(instance=obj)
            # Set image browse/upload path
            image_kwargs = {
                'finding_id': obj.id,
                'org_id': obj.report.org.id,
                'report_id': obj.report.id,
            }
            image_browse_path = reverse('ckeditor_browse', kwargs=image_kwargs)
            image_upload_path = reverse('ckeditor_upload', kwargs=image_kwargs)
            form.fields['description'].widget.config['filebrowserBrowseUrl'] = image_browse_path
            form.fields['description'].widget.config['filebrowserUploadUrl'] = image_upload_path
            context['form'] = form
        return render(request, self.template_name, context)

以上是关于ckeditor_uploader动态图像上传路径的主要内容,如果未能解决你的问题,请参考以下文章

如何在 FCKeditor 中*动态*更改图像上传路径

使用 Django CkEditor 时如何解决“缺少图像源 URL”问题

PHP:将动态上传的图像转换为特定颜色(动态颜色)

使用图像上传 Swift 动态调整 UICollectionViewCell 的大小

动态图像上传到备用gridster小部件上

无法在服务器上的部分视图中解析上传的图像路径