2013-02-20 117 views
0

蔭等。Django的CKEditor的文件中使用的Django的CKEditor上傳圖像相比

蔭上傳圖像文件,並在圖像和Flash上​​傳圖標SWF文件。但是當我上傳除這些以外的文件時,Iam出現「無法識別圖像文件」錯誤。對於swf文件,不會創建縮略圖,並且不顯示任何網址即可顯示虛擬圖像。

我在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)) 

任何人都幫我解決這個問題..

+0

你上傳的所有其他文件類型是什麼? – 2013-02-20 05:27:50

回答

2

從技術上講,只有圖像文件可以縮略圖。所有其他類型都應根據其類型具有默認縮略圖(可能是圖標圖像)。在你的代碼中,邏輯應該是

if upload_ext in [".jpg", ".png",]: 
    create_thumbnail(filename) 
else: 
    create_default_thumbnail(upload_ext) // for .swf, .doc etc