0

我是 iPhone 开发的新手所以任何人都可以在将图像上传到服务器时解释一下这条线吗?

NSString *urlString = @"http://www.mysite.com/edit_profile.php";

线是什么意思???

如果我们在新项目中编写相同的代码,我们需要在那里编写什么

如何检查图像是否添加

我看过youtube视频

http://www.youtube.com/watch?v=aQXaJO36I7Y

那里是upload.php,而那个.php 文件就在她的系统中。
如果我在我的应用程序中编写相同的代码,我需要做什么?

4

3 回答 3

0

上传图像意味着您将其上传到某个服务器,它具有应该上传图像的路径

NSString *urlString = @"http://www.mysite.com/edit_profile.php";

表示您正在制作该路径的字符串 url,用于准备 url 请求以将数据发送到服务器路径

于 2013-07-29T07:07:24.007 回答
0

代码中的字符串是 URL。(有关更多信息,请参阅此 wiki:统一资源定位器)。

将文件上传到服务器时,您可以(但不强制)使用 HTTP POST 请求,如RFC 1867,“HTML 中基于表单的文件上传”中所述。

在 iOS 上,您可以使用NSURLConnection来完成此操作,或使用第三方框架。

SO 包含大量关于如何将文件上传到服务器的信息。

于 2013-07-29T07:12:22.560 回答
0

尝试理解下面的代码它简单的http post方法将数据(在我们的例子中是图像发布数据)发送到服务器......

- (id)initWithURL:(NSString *)url requestDataForImage:(NSData *)dataForImage imagename:(NSString*)imagename 

{

 if (self = [super init])
    {
        initrequeststring=@"Sourceimagetype";
         NSMutableURLRequest *request=[NSMutableURLRequest requestWithURL:[NSURL URLWithString:url]];
        url = [url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
        request = [[NSMutableURLRequest alloc] init];
        [request setURL:[NSURL URLWithString:url]];
        [request setHTTPMethod:@"POST"];
        NSString *boundary = @"---------------------------14737809831466499882746641449";
        NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@", boundary];
        [request addValue:contentType forHTTPHeaderField:@"Content-Type"];

    NSMutableData *body1 = [NSMutableData data];
    [body1 appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];

    //int r = arc4random() % 480000;
    NSString *str = [NSString stringWithFormat:@"Content-Disposition: form-data; name=\"SourceImage\"; filename=\"%@\"\r\n", imagename];
    [body1 appendData:[[NSString stringWithString:str] dataUsingEncoding:NSUTF8StringEncoding]];
    [body1 appendData:[@"Content-Type: application/octet-stream\r\n\r\n" dataUsingEncoding : NSUTF8StringEncoding]];
    [body1 appendData:[NSData dataWithData:dataForImage]];
    [body1 appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
    [request setHTTPBody:body1];


    con=[[NSURLConnection alloc]initWithRequest:request delegate:self];
    if(con)
    {
        webdata=[[NSMutableData data]retain];
    }
}

return self;

}

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
    [webdata setLength:0];
}

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
    [webdata appendData:data];
}

- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
{
    [app hideLoadingView];

    if ([WSDelegate respondsToSelector:@selector(ConnectionFail:)])
    {
        [WSDelegate ConnectionFail:[NSString stringWithFormat:@"%@",error.localizedDescription]];
    }
    else
    {
        connection=nil;
        [connection release];
    }
}

在服务器上的 php 文件中,您可以将我们的文件移动到所需的文件夹..

if ($_GET['user_id']!='')
{
    $uploaddir = $_SERVER['DOCUMENT_ROOT'].'/streetculture/Images/'.$user_id.'/';
    move_uploaded_file($_FILES['SourceImage']['tmp_name'],$uploaddir.$_FILES['SourceImage']['name']);
    $da_created = date('Y-m-d H:i:s');
    @$Carpic = $_FILES['SourceImage']['name'];
    $thumbname='th_'.$Carpic;
    $uploadfile = $uploaddir . $Carpic;
    $tx_image = $Carpic;
    list($width, $height) = getimagesize($uploadfile) ;
    $ratio=2;
    $modwidth = $width / $ratio; 
    $modheight = $height / $ratio;
    $modwidth=round($modwidth, 0, PHP_ROUND_HALF_EVEN);
    $modheight=round($modheight, 0, PHP_ROUND_HALF_EVEN);
    $tn = imagecreatetruecolor($modwidth, $modheight) ; 
    $image = imagecreatefromjpeg($uploadfile) ; 
    imagecopyresampled($tn, $image, 0, 0, 0, 0, $modwidth, $modheight, $width, $height) ;
    imagejpeg($tn,$uploaddir . $thumbname, 100) ;
}
于 2013-07-29T09:56:19.093 回答