从上传的文件创建图像

Create an image from uploaded file

我正在这样上传文件。 (我可以同时上传多个,输入会动态添加)

<form method="POST" action="ajax.php" enctype="multipart/form-data">
     <input type="file" name="uploadImage[]" id="file_input"> 
     <input type="file" name="uploadImage[]" id="file_input1"> 
     <input type="file" name="uploadImage[]" id="file_input2"> 
     <input type="submit" name="sendBtn" value="Click me">
</form> 

然后我提交到我的 ajax,我需要从上传的图像创建 thumbnail 并上传图像和缩略图。

这是我上传的电影的结构,我从 $_FILES 得到的。

Array
(
    [name] => array.png
    [type] => image/png
    [tmp_name] => /tmp/phpKw4V3s
    [error] => 0
    [size] => 53038
)

如何在这种结构中使用像 imagepng() 这样的函数?

我可以使用图像的完整路径轻松完成,但我不能使用 php 的客户端路径。

我建议使用现有库来完成此类任务,例如 https://blueimp.github.io/jQuery-File-Upload/ or http://image.intervention.io/

但是从头开始,您需要先创建一个图像资源:

$src = imagecreatefrompng($path_to_img);

如果你想为头像调整大小,你可以这样做:

  list($width, $height) = getimagesize($path_to_img);

  // COMPUTE NEW width and new height..
  // ..
  // creates black image of new size
  $final = imagecreatetruecolor($w, $h);

  // set background to white
  $white = imagecolorallocate($final, 255, 255, 255);
  imagefill($final, 0, 0, $white);

  // copys and resized original image ($width,$height) into new image ($newWidth,$newHeight)
  imagecopyresampled($final, $src, $dst_x, $dst_y, 0, 0, $newWidth, $newHeight, $width, $height);

要将其保存到文件或输出将使用

 imagepng($src, $path_to_new_file);