django-ckeditor 上传图片以外的文件
Posted
技术标签:
【中文标题】django-ckeditor 上传图片以外的文件【英文标题】:django-ckeditor files upload other than image 【发布时间】:2013-02-05 00:57:41 【问题描述】:我正在使用 django-ckeditor。
我正在上传图像文件和 .swf 文件中的图像和 Flash 上传图标。但是当我上传除这些文件之外的文件时,我收到错误为“无法识别图像文件”。对于 swf 文件,不会创建缩略图,并且会显示没有任何 url 的虚拟图像。
我对 ckeditor 的看法是: @csrf_exempt
def upload(request):
upload = request.FILES['upload']
upload_ext = os.path.splitext(upload.name)[1]
upload_filename = get_upload_filename(upload.name, request.user)
out = open(upload_filename, 'wb+')
for chunk in upload.chunks():
out.write(chunk)
out.close()
if upload_ext != ".swf":
create_thumbnail(upload_filename)
url = get_media_url(upload_filename)
url = url.replace("\\", "/")
return HttpResponse("""
<script type='text/javascript'>
window.parent.CKEDITOR.tools.callFunction(%s, '%s');
</script>""" % (request.GET['CKEditorFuncNum'], url))
缩略图,
def create_thumbnail(filename):
image = Image.open(filename)
if image.mode not in ('L', 'RGB'):
image = image.convert('RGB')
imagefit = ImageOps.fit(image, THUMBNAIL_SIZE, Image.ANTIALIAS)
imagefit.save(get_thumb_filename(filename))
谁能帮我解决这个问题..
【问题讨论】:
您上传的所有其他文件类型是什么? 【参考方案1】:从技术上讲,只有图像文件可以有缩略图。所有其他类型应具有基于其类型的默认缩略图(可能是图标图像)。在您的代码中,逻辑应该
if upload_ext in [".jpg", ".png",]:
create_thumbnail(filename)
else:
create_default_thumbnail(upload_ext) // for .swf, .doc etc
【讨论】:
以上是关于django-ckeditor 上传图片以外的文件的主要内容,如果未能解决你的问题,请参考以下文章
如何设置最大图像大小以在 django-ckeditor 中上传图像?
如何为使用 Django-CKEditor 上传的图像创建 uuid4 文件名?