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



我有一个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()

这里有解决方案:

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

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"这应该是您上传的图像完整路径。

最新更新