2011-11-09 159 views
0

我正在面臨的問題上傳媒體文件到一個web服務建立在PHP。 我有一個應用程序以及源代碼在android中,我想在iphone中複製它。 有這部分我應該上傳媒體文件以及一些字符串到Web服務。 android中的代碼使用一個名爲MultiPartEntity和HTTPPost的類來上傳它。 有幾個標籤,標籤與某些字符串相關聯。上傳圖像,視頻和音頻文件到一個php的web服務iphone

for ex.MultiPartEntity mpEntity.addPart(「username」,「abc」);,類似的密碼和其他標籤。

我做了一些研究,發現ASIFormDataRequest處理類似的事情。

這裏是我使用與一些其他detials沿上傳媒體樣本代碼,

的NSData *的imageData = UIImageJPEGRepresentation(image.image,90); NSMutableURLRequest * request = [[[NSMutableURLRequest alloc] init] autorelease]; [request setURL:[NSURL URLWithString:@「http://my.url.com/somephpwebservice.php」]]; [請求setHTTPMethod:@「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]; 

//................................ Append the image data here//u= \"TP\";p= \"7012\";o= \"DEMO\";j= \"1151\"........................... 
//if (!([htmlCodeToWrite rangeOfString:@"SignatureShouldBeDoneHere"].location == NSNotFound)) 
//{ 
    [body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];  
    [body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data;name=\"userfile\";username=\"TP\";p=\"7012\";filename=\"%@\"\r\n",@"superman.jpg"] dataUsingEncoding:NSUTF8StringEncoding]]; 
    //[body appendData:[[NSString stringWithString:@"Content-Type: application/octet-stream\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]]; 
    [body appendData:[@"Content-Type: image/jpeg\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]]; 
    [body appendData:[NSData dataWithData:imageData]]; 
//} 
//NSString *content = [NSString stringWithUTF8String:[imageData bytes]]; 
NSLog(@"%@",imageData); 
[body appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]]; 

//data into the string..... verifying............ 
NSString *strTest = [[NSString alloc] initWithData:body encoding:NSASCIIStringEncoding]; 
NSLog(@"%@ %@",@".....the request for webService",strTest); 

// setting the body of the post to the request 
[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,@".....the response from webService"); 

這是正確的程序。

php開發人員說圖像沒有上傳。

請幫忙。 Thanx提前。

+0

爲什麼不使用ASIFormDataRequest的具體原因? – Tudorizer

+0

我甚至用ASIFormDataRequest嘗試過,但沒有幫助 –

回答

0

請參考我在this的回覆帖子。我認爲是符合分段上傳文件請求的正確方法。乾杯!

相關問題