2012-07-09 78 views
0

我使用ASIHTTP到POST数据到服务器,并在接收到所有的数据,因为它应该ASIHTTP上传白色图像

我上传与

[request1 setData:imageData withFileName:@"upload.png" andContentType:@"image/png" forKey:@"Image"]; 

图像这里的imageData是NSData的

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info 
{ 
    NSString *mediaType = [info objectForKey:UIImagePickerControllerMediaType]; 
    [self dismissModalViewControllerAnimated:YES]; 
    if ([mediaType isEqualToString:(NSString *)kUTTypeImage]) { 

     UIImage *image = [info objectForKey:@"UIImagePickerControllerOriginalImage"] ; 
     UIGraphicsBeginImageContext(CGSizeMake(320,480)); 

     UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext(); 
     UIGraphicsEndImageContext(); 
     CGSize kMaxImageViewSize = {.width = 100, .height = 100}; 

     //[self resizeImage:newImage newSize:kMaxImageViewSize]; 
     imageData=UIImageJPEGRepresentation([self resizeImage:newImage newSize:kMaxImageViewSize], 0.5); 

} 
- (UIImage *)resizeImage:(UIImage*)image newSize:(CGSize)newSize { 
    CGRect newRect = CGRectIntegral(CGRectMake(0, 0, newSize.width, newSize.height)); 
    CGImageRef imageRef = image.CGImage; 

    UIGraphicsBeginImageContextWithOptions(newSize, NO, 0); 
    CGContextRef context = UIGraphicsGetCurrentContext(); 

    // Set the quality level to use when rescaling 
    CGContextSetInterpolationQuality(context, kCGInterpolationHigh); 
    CGAffineTransform flipVertical = CGAffineTransformMake(1, 0, 0, -1, 0, newSize.height); 

    CGContextConcatCTM(context, flipVertical); 
    // Draw into the context; this scales the image 
    CGContextDrawImage(context, newRect, imageRef); 

    // Get the resized image from the context and a UIImage 
    CGImageRef newImageRef = CGBitmapContextCreateImage(context); 
    UIImage *newImage = [UIImage imageWithCGImage:newImageRef]; 

    CGImageRelease(newImageRef); 
    UIGraphicsEndImageContext();  

    return newImage; 
} 

这是我如何重新调整图像的大小。我的问题是,当图像被保存在服务器上时,我只是得到一个白色的图像,空白的一个。它是一个服务器的问题,或者也可以是我不发送表单应用程序

编辑 这里是我的服务器代码

$filename="upload"; 
$target_path = "uploads/"; 
$target_path = $target_path .$filename.".png"; 
if(move_uploaded_file($_FILES['file']['tmp_name'], $target_path)) { 
echo "uploaded an image"; 
} else{ 
    echo "There was an error uploading the file, please try again!"; 
} 

回答

1
 if (newImagesTaken.size.width > 320 || newImagesTaken.size.height > 480) { 
           // resize the image 
           float actualHeight = newImagesTaken.size.height; 
           float actualWidth = newImagesTaken.size.width; 
           float imgRatio = actualWidth/actualHeight; 
           float maxRatio = self.view.frame.size.width/self.view.frame.size.height; 

           if(imgRatio < maxRatio){ 
            imgRatio = self.view.frame.size.height/actualHeight; 
            actualWidth = imgRatio * actualWidth; 
            actualHeight = self.view.frame.size.height; 
           } 
           else{ 
            imgRatio = self.view.frame.size.width/actualWidth; 
            actualHeight = imgRatio * actualHeight; 
            actualWidth = self.view.frame.size.width; 
           } 
           CGRect rect = CGRectMake(0.0, 0.0, actualWidth, actualHeight); 
           UIGraphicsBeginImageContext(rect.size); 
           [newImagesTaken drawInRect:rect]; 
           newImagesTaken = UIGraphicsGetImageFromCurrentImageContext(); 
           UIGraphicsEndImageContext(); 
          }  

          ///////////////////////////////////////////////////////////////////////////// 

          NSData *imageData = UIImageJPEGRepresentation(newImagesTaken, 1.0); 
    [request addData:imageData withFileName:@"ByDefault.jpeg" andContentType:@"image/jpeg" forKey:@"Filedata"]; 



$target_path = "uploads/"; 

$target_path = $target_path . $_FILES['media']['name']; 

if(move_uploaded_file($_FILES['media']['tmp_name'],$target_path)) { 
echo "The file ". basename($_FILES['media']['name']). 
" has been uploaded"; 
} 
else 
{ 
echo "There was an error uploading the file, please try again!"; 
} 
+0

我做这种方式为我工作。谢谢 – SALMAN 2012-07-09 21:02:37

+0

没有帮助。从我可以看到的方式来看,这可能是服务器(php)问题 – Spire 2012-07-11 02:47:15

+0

@Spire是的!如果它仍然无法正常工作,那么webservice端必须存在问题?你有php的代码结束了吗?我可以为你解决这个问题。谢谢 – SALMAN 2012-07-11 07:37:51