2014-02-23 37 views
0

我有一个iOS应用程序将图像张贴到一个将其保存到数据库的php页面。如何从php数据库文章中获取URL?

iOS的代码如下所示:

- (BOOL)uploadImage:(NSData *)imageData filename:(NSString *)filename{ 

    NSLog(@"uploading"); 

    NSString *urlString = @"http://www.myserver.com/appsapce/assets/uploadPics.php"; 

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

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

    NSMutableData *body = [NSMutableData data]; 

    [body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]]; 

    //Set the filename 
    [body appendData:[[NSString stringWithString:[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"userfile\"; filename=\"%@\"\r\n",filename]] dataUsingEncoding:NSUTF8StringEncoding]]; 

    [body appendData:[@"Content-Type: application/octet-stream\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]]; 

    //append the image data 
    [body appendData:[NSData dataWithData:imageData]]; 

    [body appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]]; 

    [request setHTTPBody:body]; 

    NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; 
    NSString *returnString = [[[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding] autorelease]; 

    NSLog(@"returningOKString"); 

    return ([returnString isEqualToString:@"OK"]); 
} 

和PHP看起来是这样的:

<?php 
$uploaddir = 'photos/'; 
$file = basename($_FILES['userfile']['name']); 
$uploadfile = $uploaddir . $file; 

if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) { 
    echo "OK"; 
} else { 
    echo "ERROR"; 
} 

?> 

如何返回服务器URL的照片贴到我的iOS应用程序?

THX

+1

为什么不回的网址,而不是简单的返回 “OK”?然后在iOS应用程序中捕获请求。 – rusben

回答

0

而且我看你是从iOS的传递文件名称,而不是echo "OK";使用echo $uploadfile;

只有basename($_FILES['userfile']['name'])

正如你所知道的IOS文件名,只是检查returnString。如果它的OK意味着路径如下。

www.xyz.com/photos/fileNameIPassed

这里fileNameIPassed = basename($_FILES['userfile']['name'])