2013-08-12 52 views
0

我正在開發的應用程序,需要上傳圖像從iPhone到PHP服務器,以下是我用來上傳文件到服務器的代碼,但我只能看到文本參數,但圖像沒有上傳。上傳圖像到文本參數服務器iPhone

NSString *BoundaryConstant = @"----------V2ymHFg03ehbqgZCaKO6jy"; 
NSString* FileParamConstant = @"image"; 

NSURL* requestURL = [NSURL URLWithString:@"http://bb.trackfleet.biz/smscalling/upload_iphone_image.php"]; 

    NSMutableDictionary* _params = [[NSMutableDictionary alloc] init]; 
    [_params setObject:[NSString stringWithFormat:@"919964823246"] forKey:@"contact"]; 



    NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init]; 
    [request setCachePolicy:NSURLRequestReloadIgnoringLocalCacheData]; 
    [request setHTTPShouldHandleCookies:NO]; 
    [request setTimeoutInterval:60]; 
    [request setHTTPMethod:@"POST"]; 


    // post body 
    NSMutableData *body = [NSMutableData data]; 
    // set Content-Type in HTTP header 
    NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@", BoundaryConstant]; 
    [request setValue:contentType forHTTPHeaderField: @"Content-Type"]; 

    // add params (all params are strings) 
    for (NSString *param in _params) { 
     [body appendData:[[NSString stringWithFormat:@"--%@\r\n", BoundaryConstant] dataUsingEncoding:NSUTF8StringEncoding]]; 
     [body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"%@\"\r\n\r\n", param] dataUsingEncoding:NSUTF8StringEncoding]]; 
     [body appendData:[[NSString stringWithFormat:@"%@\r\n", [_params objectForKey:param]] dataUsingEncoding:NSUTF8StringEncoding]]; 
    } 

    UIImage *imageToPost=[UIImage imageNamed:@"image3.jpg"]; 
    NSData *imageData = UIImageJPEGRepresentation(imageToPost, 1.0); 
    if (imageData) { 
     [body appendData:[[NSString stringWithFormat:@"--%@\r\n", BoundaryConstant] dataUsingEncoding:NSUTF8StringEncoding]]; 
     [body appendData:[[NSString stringWithFormat:@"Content-Disposition: attachment; name=\"%@\"; filename=\"image.jpg\"\r\n", FileParamConstant] dataUsingEncoding:NSUTF8StringEncoding]]; 
     [body appendData:[@"Content-Type: image/jpeg\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]]; 
     [body appendData:imageData]; 
     [body appendData:[[NSString stringWithFormat:@"\r\n"] dataUsingEncoding:NSUTF8StringEncoding]]; 
    } 



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

    // setting the body of the post to the reqeust 
    [request setHTTPBody:body]; 

    // set the content-length 
    NSString *postLength = [NSString stringWithFormat:@"%d", [body length]]; 
    [request setValue:postLength forHTTPHeaderField:@"Content-Length"]; 

    // set URL 
    [request setURL:requestURL]; 

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

    NSLog(@"%@", returnString); 

問題:圖像沒有上傳到文本存儲在數據庫中的路徑上。

我做了什麼:對於某些參考,我嘗試了Flickr API iOS應用程序「POST size too large!」和目標C:如何使用HTTP POST上傳圖像和文本?

回答