从php中的ios设备相机上传时图像无法正确上传

时间:2018-03-23 09:22:04

标签: php ios image-uploading

我在codeigniter中创建了一个项目,用户可以在其中上传他的个人资料图片。我正在使用图片库上传它。当我在IOS设备上使用相机上传图像时,图像上传了一些灰色区域。库中的代码是

function createImage($iMageName,$folderName){
$width = 500; $height = true;
$data=base64_decode($iMageName);
$f = finfo_open();
$mime_type = finfo_buffer($f, $data, FILEINFO_MIME_TYPE);
$image = imagecreatefromstring($data);
$height = $height === true ? (ImageSY($image) * $width / ImageSX($image)) : $height;
$output = ImageCreateTrueColor($width, $height);
$imgThumb=uniqid().strtotime(date("Y-m-d H:i:s")).'.jpg';
$imageName=$folderName.$imgThumb;
$fullpath=FCPATH.$imageName;
ImageCopyResampled($output, $image, 0, 0, 0, 0, $width, $height, ImageSX($image), ImageSY($image));
imagejpeg($output, $fullpath, 90);
return $imageName;
}

适用于网络和Android设备,但在ios设备中有问题,请参阅上传的图片enter image description here

1 个答案:

答案 0 :(得分:0)

我也面临同样的问题。 在以下情况下会出现问题:

  1. 文件大小。请验证文件大小。

  2. 请写下以下代码并检查它是否有效。

     function createImage($iMageName,$folderName){
          ini_set ('gd.jpeg_ignore_warning', 1);
          $width = 500; $height = true;
          $data=base64_decode($iMageName);
          $f = finfo_open();
          $mime_type = finfo_buffer($f, $data, FILEINFO_MIME_TYPE);
          $image = @imagecreatefromstring($data);
          $height = $height === true ? (ImageSY($image) * $width / 
          ImageSX($image)) : $height;
          $output = @ImageCreateTrueColor($width, $height);
          $imgThumb=uniqid().strtotime(date("Y-m-d H:i:s")).'.jpg';
          $imageName=$folderName.$imgThumb;
          $fullpath=FCPATH.$imageName;
          @ImageCopyResampled($output, $image, 0, 0, 0, 0, $width, 
          $height, ImageSX($image), ImageSY($image));
          imagejpeg($output, $fullpath, 90);
          return $imageName;
      }
    
  3. 谢谢,这对你有帮助