gpt4 book ai didi

php - 为上传的图片创建一个唯一的名称

转载 作者:可可西里 更新时间:2023-11-01 13:17:23 27 4
gpt4 key购买 nike

我有一段图片上传的代码。我在网上找到了这个,也没有代码的解释。我从代码中可以理解的是php上传某个文件使它成为一个临时文件然后移动临时文件到原来的位置

代码看起来像这样

 $filename = $_FILES["img"]["tmp_name"];
list($width, $height) = getimagesize( $filename );


move_uploaded_file($filename, $imagePath . $_FILES["img"]["name"]);

现在发生的事情是,当我尝试为使用 move_uploaded_file 移动图像时提供唯一名称时,文件夹中确实出现了一个文件,但它说文件无效并且扩展类型为文件。我的代码试图实现相同但上传图片具有唯一名称/ID。

$uniquesavename=time().uniqid(rand());
$filename = $_FILES["img"]["tmp_name"];
list($width, $height) = getimagesize( $filename );
move_uploaded_file($filename, $imagePath . $uniquesavename);

如何实现与之前相同的效果,能否请您也向我解释一下之前的代码?

最佳答案

示例代码:

// Get file path from post data by using $_FILES
$filename = $_FILES["img"]["tmp_name"];
// Make sure that it's a valid image which can get width and height
list($width, $height) = getimagesize( $filename );
// Call php function move_uploaded_file to move uploaded file
move_uploaded_file($filename, $imagePath . $_FILES["img"]["name"]);

请试试这个:

// Make sure this imagePath is end with slash
$imagePath = '/root/path/to/image/folder/';
$uniquesavename=time().uniqid(rand());
$destFile = $imagePath . $uniquesavename . '.jpg';
$filename = $_FILES["img"]["tmp_name"];
list($width, $height) = getimagesize( $filename );
move_uploaded_file($filename, $destFile);

编辑 1:获取图片类型有两种方式:

  • 从上传文件名中获取文件类型。
  • 如下使用php函数

代码

// Get details of image
list($width, $height, $typeCode) = getimagesize($filename);
$imageType = ($typeCode == 1 ? "gif" : ($typeCode == 2 ? "jpeg" : ($typeCode == 3 ? "png" : FALSE)));

关于php - 为上传的图片创建一个唯一的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36030621/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com