xcode 如何将图像发布到 Web 服务器

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/13679009/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-15 02:14:17  来源:igfitidea点击:

how to post an image to the web server

iphoneobjective-ciosxcode

提问by Shivaay

I am working with web services using json parsing. I am able to get images from the web services, can someone help me how to post an image? How i can post an image to the web services?

我正在使用 json 解析来处理 Web 服务。我可以从网络服务中获取图像,有人可以帮助我如何发布图像吗?如何将图像发布到 Web 服务?

采纳答案by Siba Prasad Hota

Find here serverside (PHP) coding for image Upload with random name. also it will give the image link as response.

在此处找到用于使用随机名称上传图像的服务器端 (PHP) 编码。它还将提供图像链接作为响应。

//Create a folder named images in your server where you want to upload the image.
// And Create a PHP file and use below code .


<?php
$uploaddir = 'images/';
$ran = rand () ;

$file = basename($_FILES['userfile']['name']);
$uploadfile = $uploaddir .$ran.$file;

if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
        echo "www.host.com/.../images/{$uploadfile}";
}
?>

And Here is iOS code

这是iOS代码

- (IBAction)uploadClicked:(id)sender
{
    /*
         turning the image into a NSData object
         getting the image back out of the UIImageView
         setting the quality to 90
        */
        NSData *imageData = UIImageJPEGRepresentation(imageView.image, 90);
        // setting up the URL to post to
        NSString *urlString = @"your URL link";

        // setting up the request object now
        NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
        [request setURL:[NSURL URLWithString:urlString]];
        [request setHTTPMethod:@"POST"];

        /*
         add some header info now
         we always need a boundary when we post a file
         also we need to set the content type

         You might want to generate a random boundary.. this is just the same 
         as my output from wireshark on a valid html post
        */
        NSString *boundary = [NSString stringWithString:@"---------------------------14737809831466499882746641449"];
        NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",boundary];
        [request addValue:contentType forHTTPHeaderField: @"Content-Type"];

        /*
         now lets create the body of the post
        */
        NSMutableData *body = [NSMutableData data];
        [body appendData:[[NSString stringWithFormat:@"rn--%@rn",boundary] dataUsingEncoding:NSUTF8StringEncoding]];    
        [body appendData:[[NSString stringWithString:@"Content-Disposition: form-data; name="userfile"; filename="ipodfile.jpg"rn"] dataUsingEncoding:NSUTF8StringEncoding]];
        [body appendData:[[NSString stringWithString:@"Content-Type: application/octet-streamrnrn"] dataUsingEncoding:NSUTF8StringEncoding]];
        [body appendData:[NSData dataWithData:imageData]];
        [body appendData:[[NSString stringWithFormat:@"rn--%@--rn",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
        // setting the body of the post to the reqeust
        [request setHTTPBody:body];

        // now lets make the connection to the web
        NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
        NSString *returnString = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];

        NSLog(returnString);

}

回答by Fogmeister

it will be something along the lines of this...

这将是这样的……

NSMutableURLRequest *mutableRequest = [[NSMutableURLRequest alloc] initWithURL:@"you url"];

[mutableRequest addValue:@"image/jpeg" forHTTPHeaderField: @"Content-Type"];

NSMutableData *body = [NSMutableData data];

[body appendData:[NSData dataWithData:UIImageJPEGRepresentation(self.image, 0.9)]];

[mutableRequest setHTTPBody:body];

NSURLResponse *response;
NSError *error;

(void) [NSURLConnection sendSynchronousRequest:mutableRequest returningResponse:&response error:&error];

Thanks

谢谢

回答by Susim Samanta

Check below good tutorial.In that tutorial you able to find the ios side code as well server side php code too. http://zcentric.com/2008/08/29/post-a-uiimage-to-the-web/

检查下面的好教程。在该教程中,您也可以找到 ios 端代码以及服务器端 php 代码。 http://zcentric.com/2008/08/29/post-a-uiimage-to-the-web/

回答by SachinVsSachin

The best way to use ASIHttpFormData Click here to know how to use

使用ASIHttpFormData的最佳方式点此了解使用方法