gpt4 book ai didi

python - Django 从 ImageField 下载图像

转载 作者:行者123 更新时间:2023-11-30 23:18:38 24 4
gpt4 key购买 nike

我正在使用 Django 1.7 和 Python 3.4。

我有一个这样的模型:

class ImageModel(models.Model):
image = models.ImageField(verbose_name='image', upload_to='uploaded_images/')

现在我想下载保存在/static/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? )

接下来怎么办?如何创建强制下载该图像的 View ?

最佳答案

您可以尝试此代码,也许需要一些注意事项:

from django.core.servers.basehttp import FileWrapper
import mimetypes

def download_image(request, image_id):
img = ImageModel.objects.get(id=image_id)
wrapper = FileWrapper(open(img.file)) # img.file returns full path to the image
content_type = mimetypes.guess_type(filename)[0] # Use mimetypes to get file type
response = HttpResponse(wrapper,content_type=content_type)
response['Content-Length'] = os.path.getsize(img.file)
response['Content-Disposition'] = "attachment; filename=%s" % img.name
return response
  1. 我假设您的ImageModel中有一个字段.name,用于获取倒数第二行中的文件名...filename=%s"% img.name 您应该编辑代码以适合您的项目。

  2. ImageField中有一个字段是file,在此处的代码中我使用img.file 要获取文件的路径,您应该更改 img.YOUR_IMAGE_FIELD.file 或获取图像路径所需的任何内容

关于python - Django 从 ImageField 下载图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26577548/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com