我有以下问题 - 我试图从我的iOS应用程序上传图像到服务器,但我不知道该怎么做。该网站上有HTML表单,其中包含用于浏览图像的按钮。在我的应用程序中,我从库中选择了一张照片,而不是尝试上传它,但没有任何反应。我使用此代码来使事情有效,但没有积极的结果:
-(IBAction)postImage:(id)sender
{
NSData *imageData = UIImageJPEGRepresentation(savedImage, 90);
// setting up the URL to post to
NSString *urlString = @"http://pik.bg/news/edit_news/124317";
// setting up the request object now
NSMutableURLRequest *requestUpload = [[NSMutableURLRequest alloc] init];
[requestUpload setURL:[NSURL URLWithString:urlString]];
[requestUpload setHTTPMethod:@"POST"];
NSString *boundary = @"---------------------------14737809831466499882746641449";
NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@", boundary];
[requestUpload addValue:contentType forHTTPHeaderField: @"Content-Type"];
//now lets create the body of the post
NSMutableData *body = [NSMutableData data];
[body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"Filedata\" filename=\"IMG_0056.JPG\"\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[@"Content-Type: image/jpeg\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[NSData dataWithData:imageData]];
[body appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
// setting the body of the post to the reqeust
[requestUpload setHTTPBody:body];
// now lets make the connection to the web
NSData *returnData = [NSURLConnection sendSynchronousRequest:requestUpload returningResponse:nil error:nil];
NSString *returnString = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];
NSLog (@"%@", returnString);
}
我做错了什么,但不知道到底是什么。有任何想法吗?哦,HTML表单有SUBMIT按钮,名称为“submit”,如果这很重要的话。
答案 0 :(得分:0)
请告诉我您是否只想上传图片名称或图片路径? 那是imageg1.png还是UIImage对象? 实际上我无权发表评论,因此我在答案空间中提出要求。
答案 1 :(得分:0)
NSString *urlString = @"http://........./";
NSURL *url = [NSURL URLWithString: urlString];
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
[request setUseKeychainPersistence:YES];
UIImage * image = [[UIImage imageNamed:@"good_girl.jpg"] autorelease];
NSData *imageData = UIImageJPEGRepresentation(image, 90);
[request setPostBody:imageData];
[request setDelegate:self];
[request setDidFinishSelector:@selector(uploadRequestFinished:)];
[request setDidFailSelector:@selector(uploadRequestFailed:)];
[request startAsynchronous];
答案 2 :(得分:0)
好的,这应该是你的解决方案。
在您的服务器中,您应该有一个包含不同参数的脚本,其中包含文件夹名称。 导航到右侧文件夹,然后创建此文件夹(例如images /)。之后,从您的应用程序发送的图像将保存在此文件夹中。
当我使用这种方法时,这是我的问题。