Я пытаюсь отправить изображения и текст из приложения iPhone на веб-страницу asp.net.
Следуя этому примеру Теперь у меня есть следующий метод в xcode для загрузки изображения:
- (BOOL) uploadData {
NSData *imageData = UIImageJPEGRepresentation([serviceForm image], 0.9);
NSString *urlString = @"http://someUrl/SubmitSchema.ashx";
NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
[request setURL:[NSURL URLWithString:urlString]];
[request setHTTPMethod:@"POST"];
NSString *boundary = @"---------------------------14737809831466499882746641449";
NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",boundary];
[request addValue:contentType forHTTPHeaderField: @"Content-Type"];
NSMutableData *body = [NSMutableData data];
[body appendData:[[NSString stringWithFormat:@"--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithString:@"Content-Disposition: form-data; name=\"userfile\"; filename=\"ipodfile.jpg\"\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithString:@"Content-Type: application/octet-stream\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[NSData dataWithData:imageData]];
[body appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[request setHTTPBody:body];
NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
NSString *returnString = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];
BOOL success = [returnString isEqualToString:@"ok"];
[returnString release];
return success;
}
В нижней части той же статьи есть предложение о создании универсального обработчика asp.net.Исходя из этого, у меня есть следующий простой код для сохранения изображения:
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
foreach (var name in context.Request.Files.AllKeys)
{
var file = context.Request.Files.Get(name);
SaveFile(file);
}
}
private void SaveFile(HttpPostedFile file)
{
var fileName = Path.GetFileName(file.FileName);
var path = "C:\\Test\\" + fileName;
file.SaveAs(path);
}
Это работает, и изображение сохраняется, но мне пока не удалось включить строку текста в тот же пост.Текст, который я хочу отправить, может быть довольно длинным, и я полагаю, что лучше включить его в опубликованные данные, а не в строку запроса?
Как бы вы добавили текст к опубликованным данным и прочитали егов .net?