Загрузка файла в django из iphone form.is_valid() не удалась
Я пытаюсь загрузить изображение в Django с iphone с ASIFormDataRequest.
в моем django views.py
class UploadFileForm(forms.Form):
name = forms.CharField(max_length=255)
file = forms.FileField()
@csrf_exempt
def upload_image(request):
if request.method == 'POST':
form = UploadFileForm(request.POST, request.FILES)
if form.is_valid(): ##this is always fail
newimage = Image(imgfile = request.FILES['image'])
newimage.save()
return HttpResponse('succeeded')
else:
return HttpResponse('failed')
в models.py
class Image(models.Model):
imgfile = models.FileField(upload_to='images/')
я получил это в settings.py
MEDIA_ROOT = '/srv/www/media'
с помощью приведенного выше кода, я не могу проверить форму, но если я удаляю form.is_valid(), то изображение успешно загружено в / srv / www / media / images /
и следующий код iOS:
formRequest = [ASIFormDataRequest requestWithURL:url];
[formRequest setPostFormat:ASIMultipartFormDataPostFormat];
formRequest.delegate = self;
[formRequest setData:UIImageJPEGRepresentation(image, 1.0f) withFileName:fileName andContentType:@"image/jpeg" forKey:@"image"];
[formRequest setPostValue:userName forKey:@"name"];
[formRequest setRequestMethod:@"POST"];
[formRequest setPostFormat:ASIMultipartFormDataPostFormat];
[formRequest startAsynchronous];
пожалуйста, любые предложения приветствуются и приветствуются.
1 ответ
Решение
Я ничего не знаю об iOS, но мне кажется, что вы предоставляете значение для ключа name
, но у вас нет этого поля в вашей форме - у вас есть jid
вместо. Поскольку это поле является обязательным, а вы его не предоставляете, форма недействительна.