从iOS上传图片到PHP服务器 [英] Upload image to the PHP server from iOS

查看:27
本文介绍了从iOS上传图片到PHP服务器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我知道之前也有人问过这个问题,但我的问题有点不同.

I know this question has been asked earlier as well but my issue is a bit different.

我想将图像上传到 PHP 服务器,并且我想发送更多参数以及来自 iOS 的图像.我在谷歌上搜索,找到了两个解决方案:

I want to upload an image to the PHP server and i want to send more parameters along with an image from an iOS. I searched on the google and found two solutions:

  1. 要么我们将图像作为 Base64 编码的字符串发送到 JSON.引用了链接.

  1. Either we will send an image as Base64 encoded string in JSON. Referred link.

或者我们将使用表单数据将图像上传到服务器.我已经提到了这个链接.如果有人通过这种方式推荐我,那么请帮我在这个 API 中添加更多参数.

Or we will upload an image to server using form data. I have referred this link. If someone refers me this way, then please help me to add more parameters in this API.

现在我的问题是,哪一种是将图像上传到服务器的最佳方式,我必须在同一个 Web 服务调用中发送更多参数(用户名、密码和更多详细信息).

Now my question is, which one is the best way to upload an image to the server and i have to send more parameters (username, password and more details) in the same web service call.

提前致谢.

推荐答案

您可以通过以下两种方式从 iOS App 上传图片到 PHP 服务器:

You can upload image from iOS App to PHP server like this two way:

使用新的AFNetworking:

#import "AFHTTPRequestOperation.h"
#import "AFHTTPRequestOperationManager.h"

    NSString *stringUrl =@"http://www.myserverurl.com/file/uloaddetails.php?"
    NSString *string =@"http://myimageurkstrn.com/img/myimage.png"       
    NSURL *filePath = [NSURL fileURLWithPath:string];

   NSDictionary *parameters  = [NSDictionary dictionaryWithObjectsAndKeys:userid,@"id",String_FullName,@"fname",String_Email,@"emailid",String_City,@"city",String_Country,@"country",String_City,@"state",String_TextView,@"bio", nil];

    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];

    [manager POST:stringUrl parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> formData)
     {
         [formData appendPartWithFileURL:filePath name:@"userfile" error:nil];//here userfile is a paramiter for your image 
     }
     success:^(AFHTTPRequestOperation *operation, id responseObject)
     {
         NSLog(@"%@",[responseObject valueForKey:@"Root"]);
         Alert_Success_fail = [[UIAlertView alloc] initWithTitle:@"myappname" message:string delegate:self cancelButtonTitle:@"ok" otherButtonTitles:nil, nil];
         [Alert_Success_fail show];     

     }
     failure:^(AFHTTPRequestOperation *operation, NSError *error)
     {
         Alert_Success_fail = [[UIAlertView alloc] initWithTitle:@"myappname" message:[error localizedDescription] delegate:self cancelButtonTitle:@"ok" otherButtonTitles:nil, nil];
         [Alert_Success_fail show];

     }];

二次使用 NSURLConnection:

-(void)uploadImage
    {       
        NSData *imageData = UIImagePNGRepresentation(yourImage);

        NSString *urlString = [ NSString stringWithFormat:@"http://yourUploadImageURl.php?intid=%@",1];

        NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
        [request setURL:[NSURL URLWithString:urlString]];
        [request setHTTPMethod:@"POST"];

        NSString *boundary = [NSString stringWithString:@"---------------------------14737809831466499882746641449"];
        NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",boundary];
        [request addValue:contentType forHTTPHeaderField: @"Content-Type"];

        NSMutableData *body = [NSMutableData data];
        [body appendData:[[NSString stringWithFormat:@"
--%@
",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
        [body appendData:[[NSString stringWithString:[NSString stringWithFormat:@"Content-Disposition: form-data; name="userfile"; filename="%@"
", 1]] dataUsingEncoding:NSUTF8StringEncoding]];
        [body appendData:[[NSString stringWithString:@"Content-Type: application/octet-stream

"] dataUsingEncoding:NSUTF8StringEncoding]];
        [body appendData:[NSData dataWithData:imageData]];
        [body appendData:[[NSString stringWithFormat:@"
--%@--
",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
        [request setHTTPBody:body];

        [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
    }

这两种方式都适用于将图像从应用程序上传到 php 服务器希望这对您有所帮助.

This both way working fine for uploading image from app to php server hope this helps for you.

这篇关于从iOS上传图片到PHP服务器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆