Попытка загрузить изображение с iPhone на сервер с помощью ASIFormDataRequest - PullRequest
2 голосов
/ 05 марта 2010

Я пытаюсь использовать ASIFormDataRequest для отправки фотоизображения с моего приложение для iPhone на моем сервере.

Когда я это делаю, сервер отправляет обратно ошибку сообщение, "должен быть файл изображения", подразумевая, что есть что-то не так с форматированием моего изображения. (Конечно, это может не быть проблемой ... но это хорошее место для начала.) Я знаю На сервере нет "проблемы", потому что предыдущий Подход, который я использовал (не основанный на ASIHTTPRequest), работал нормально. Вот мой код iPhone:

        ASIFormDataRequest* request = [ASIFormDataRequest requestWithURL: 
[NSURL URLWithString:photoUploadURLString]]; 
        request.username = self.username; 
        request.password = self.password; 
        [request setPostValue:self.place.placeId forKey:@"place_id"]; 
        NSData* jpegImageData = UIImageJPEGRepresentation(self.photo, 
PHOTO_JPEG_QUALITY); 
        NSString* filename = [NSString stringWithFormat:@"snapshot_%@_ 
%d.jpg", self.place.placeId, rand()]; 
        [request setData:jpegImageData withFileName:filename 
andContentType:@"image/jpeg" forKey:@"snapshot[image]"]; 
        request.uploadProgressDelegate = self.progressView; 
        [request startSynchronous]; 

Кто-нибудь видел что-то не так с этим? (Я довольно новичок в этом, так могло быть что-то очевидное, что я упускаю.)

Большое спасибо.

1 Ответ

1 голос
/ 07 октября 2010

Вы когда-нибудь пробовали addData вместо setData, это работало на моем решении.

[request addData:jpegImageData withFileName: filename andContentType:@"image/jpeg" forKey:@"photos"];

Редактировать: Кстати, какую сторону сервера вы используете?

Ваша проблема может быть в вашем ключе forKey:@"snapshot[image]"] попробуйте ввести фиктивный ключ типа forKey:@"mysnapshot"]

Надеюсь, это поможет

...