2013-07-29 38 views
0

我是iPhone新手開發因此任何人可以解釋有關線條,而上傳圖像到服務器需要澄清上傳圖像到服務器

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

什麼是線意味着???

如果我們在我們的新項目中編寫相同的代碼我們需要寫些什麼

如何檢查圖像是否添加

我已經觀看了YouTube視頻

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

在那裏,它是upload.php的和PHP文件是存在在她的系統。
如果我在我的應用程序中編寫了相同的代碼,我需要做什麼?

+0

您是否正在製作自己的服務器? – cahn

+0

解釋更多deatail問題,無論你想編碼的幫助或其他?如果你想要代碼的幫助,然後給正確的URL和其他參數傳遞。 –

回答

0

試圖理解下面的代碼及其簡單的HTTP POST方法(在本例中後期圖像數據在這裏)發送數據到服務器...

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

{

if (self = [super init]) 
    { 
     [email protected]"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) ; 
} 
0

的圖片上傳意味着你把它上傳到一些服務器,它具有到的圖像應該被上傳

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

意味着你正在這條道路,這是用來準備的字符串URL路徑url請求將數據發送到服務器路徑

+0

/用戶/ vasanthi /桌面/培訓/網絡培訓/ upload/upload.php這是我需要上傳我的圖像在我的系統中的位置,如果我給出了這樣的路徑,並運行我的應用程序並檢查位置/ Users/vasanthi /桌面/培訓/網絡培訓/ upload/upload.php但我沒有找到圖像? – UserDeviOS

+0

那我該怎麼做?如果我想檢查圖像?提前致謝 – UserDeviOS

0

代碼中的字符串是一個URL。 (請參閱本維基以瞭解更多信息:Uniform Resource Locator)。

將文件上傳到服務器時,您可能(但不會強制)使用HTTP POST請求,如RFC 1867「基於表單的文件上載HTML」中所述。

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

SO包含豐富的信息如何將文件上傳到服務器。