django-ckeditor 除图像外的文件上传
我正在使用django-ckeditor。
我在图像和Flash上传图标中上传图片文件和.swf文件。但是,当我上传其他类型的文件时,出现了“无法识别图像文件”的错误。对于.swf文件,缩略图没有生成,显示的是一个没有链接的假图像。
我在ckeditor中的视图是:
@csrf_exemptdef 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 个回答
2
从技术上讲,只有图片文件可以有缩略图。其他类型的文件应该有默认的缩略图,这个缩略图通常是根据文件类型来决定的(可能是一个图标图片)。在你的代码中,逻辑应该是这样的:
if upload_ext in [".jpg", ".png",]:
create_thumbnail(filename)
else:
create_default_thumbnail(upload_ext) // for .swf, .doc etc