我正在使用Django 1.7和Python 3.4。Django從ImageField下載圖像
我有這樣一個模型:
class ImageModel(models.Model):
image = models.ImageField(verbose_name='image', upload_to='uploaded_images/')
現在我要下載的文件保存在/靜態/ uploaded_images /圖像。 例如我有這樣的鏈接:www.example.com/image/download/1
,其中1是ImageModel對象的id。
現在我有一個觀點:
def download_image(request, image_id):
img = ImageModel.objects.get(id=image_id)
(what I need to do?)
下一步是什麼?如何創建一個強制下載該圖像的視圖?
請注意,如果名稱在ASCII範圍內,但使用寬字符失敗時會失敗。 Content-Disposition支持UTF-8編碼名稱,但舊版瀏覽器(IE8之前)將完全忽略它。在內部,它更好地隱藏重定向到URL中具有文件名的URL。所有的瀏覽器都會支持這一點,你將避免IE瀏覽器附加的錯誤[1]錯誤,以避免出現文件名錯誤 – 2014-10-26 20:49:23
@MikeMcMahon我不完全確定你想要解釋什麼,但我很樂意學習任何其他方式來做到這一點,如果它更好。你能給一些關於這方面的信息的鏈接嗎? – AlvaroAV 2014-10-26 20:51:02
考慮使用漢字字符或西里爾文字符的文件名。 'filename =%s'將不起作用。它可以在FireFox/Chrome中使用,但不能在IE8以及可能的移動瀏覽器上使用(取決於使用哪種移動設備和瀏覽器技術)。有一個'filename * = UTF-8''%s'格式,它支持UTF-8編碼的字符,這有時會*有效*。最好(從DJango內部)執行HttpRedirect()到包含完整文件名的URL作爲路徑的一部分。所有的瀏覽器都可以解釋這個和標準範圍之外的字符。 – 2014-10-26 20:54:32