doutan8775 2014-04-22 18:03
浏览 41
已采纳

使用POST php ios上传图像数据

Here is the code..

- (IBAction)buttonClicked:(id)sender {   
    UIImage *yourImage= [UIImage imageNamed:@"img.png"];
    NSData *imageData = UIImagePNGRepresentation(yourImage);
    NSString * postLength = [NSString stringWithFormat:@"%lu",(unsigned long)[imageData length]];
    NSMutableURLRequest * request = [[NSMutableURLRequest alloc] init];
    [request setURL:[NSURL URLWithString:[NSString stringWithFormat:@"http://address/foldername/upload.php?"]]];
    [request setHTTPMethod:@"POST"];
    [request setValue:postLength forHTTPHeaderField:@"Content-Length"];
    [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
    [request setHTTPBody:imageData];
    NSURLConnection * conn = [[NSURLConnection alloc] initWithRequest:request delegate:self];   
    if (conn) NSLog(@"Connection Successful");
}

connection logs Succesffull but im missing something i don't know what

Here is the php I think the problem may lye here

//This is the directory where images will be saved 
$con = mysql_connect("localhost" ,"root" , "");
if(!$con){
    die('Could not connect' . mysql_error());
}
mysql_select_db("Databasename",$con);

//upload your file
$uploaddir = './Uploads/';
$file = basename($_FILES['userfile']['name']);
$uploadfile = $uploaddir . $file;
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
    echo "/uploads/{$file}";
}
mysql_close($con);
  • 写回答

1条回答 默认 最新

  • duandange7480 2014-04-22 18:14
    关注

    The body data you send should include more information:

    [imageData appendData:[@"Content-Disposition: form-data; name=\"image\"; filename=\"name.jpg\"
    " dataUsingEncoding:NSUTF8StringEncoding]];
    [imageData appendData:[@"Content-Type: image/jpeg
    
    " dataUsingEncoding:NSUTF8StringEncoding]];
    

    So that the server knows what it received and how to handle it. Be sure to create imageData as mutable.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?