我有一个使用django-rest-framework的图片字段如何处理通过API上传图片的内容?
有没有例子?
models.py
image = models.ImageField(
upload_to="profiles",
height_field="height",
width_field="width",
null=True,
blank=True,
editable=True,
help_text="Profile Picture",
verbose_name="Profile Picture"
)
height = models.PositiveIntegerField(null=True, blank=True, editable=False)
width = models.PositiveIntegerField(null=True, blank=True, editable=False)
答案 0 :(得分:2)
最后,我可以使用Django上传图片。 这是我的工作代码
views.py
class FileUploadView(APIView):
# parser_classes = (MultiPartParser, FormParser, )
parser_classes = (FileUploadParser, )
# media_type = 'multipart/form-data'
# format = 'jpg'
def post(self, request, format='jpg'):
up_file = request.FILES['file']
destination = open('/Users/Username/' + up_file.name, 'wb+')
for chunk in up_file.chunks():
destination.write(chunk)
destination.close()
# ...
# do some stuff with uploaded file
# ...
return Response(up_file.name, status.HTTP_201_CREATED)
urls.py
urlpatterns = patterns('',
url(r'^imageUpload', views.FileUploadView.as_view())
curl上传请求
curl -X POST -S -H -u "admin:password" -F "file=@img.jpg;type=image/jpg" 127.0.0.1:8000/resourceurl/imageUpload
答案 1 :(得分:0)
图像字段不存储图像,而是存储图像的链接。你在设置中设置了MEDIA_URL吗?例如MEDIA_URL ='/ media /'如果你在localhost上运行,你应该在localhost / media / profiles / image_name.png找到图像