尝试将图像从我的iOS应用程序上传到服务器

时间:2013-12-04 10:32:27

标签: php ios image upload

我有以下问题 - 我试图从我的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”,如果这很重要的话。

3 个答案:

答案 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 /)。之后,从您的应用程序发送的图像将保存在此文件夹中。

当我使用这种方法时,这是我的问题。