1

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)
4

2 に答える 2

2

最後に、Django を使用して画像をアップロードできます。これが私の作業コードです

ビュー.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
于 2015-02-24T13:52:16.933 に答える
0

画像フィールドには画像は保存されませんが、画像へのリンクが保存されます。設定でMEDIA_URLを設定していますか?例 MEDIA_URL = '/media/' localhost で実行している場合、画像は localhost/media/profiles/image_name.png にあります。

于 2013-02-28T17:24:40.083 に答える