如何找到上传图像的绝对路径 - Django 1.11

时间:2018-03-13 04:20:54

标签: django file-io django-forms django-views

我有一个django表单,用户可以在其中上传一个将在页面上显示的图像。提交表单请求后,我尝试使用以下代码将httpresponse返回给上传图像的用户:

image_data = open("/path/to/my/image.png", "rb").read()
return HttpResponse(image_data, content_type="image/png")

问题在于我无法从表单请求中提交的图像中获取绝对路径。通过执行以下操作,我可以获取图像的名称,但不能获取它的本地路径:

name = ""
for filename, file in request.FILES.iteritems():
    name = request.FILES[filename]      
    imageFileName = name

我已尝试使用基于SO帖子的函数file_to_string(),但看起来该函数现已弃用。 如何获取绝对文件路径,以便将其传递给open函数以返回图像?

models.py

class PhotoUploader(models.Model):
    title = models.CharField(max_length =120)
    image = models.ImageField()

1 个答案:

答案 0 :(得分:1)

这里有解决方案:

保存图像后,您可能会得到类似的路径:

instance = PhotoUploader.objects.get(id=instance_id);
image_full_path = instance.image.path
image_data = open(image_full_path, "rb").read()
return HttpResponse(image_data, content_type="image/png")

“image_full_path”这应该是您上传的图片的完整路径。