PHP使用md5名称上传图像

时间:2013-12-12 17:23:16

标签: php image-uploading

我需要上传md5/uniqid名称的图片。

PHP:

$filenamekey = md5(uniqid($_FILES["myfile"]["name"], true)); 

move_uploaded_file($_FILES["myfile"]["tmp_name"],$output_dir.$filenamekey);

此图片移动到md5 name的文件夹中,但上传文件时没有任何图片extension/type。我该如何解决这个问题?

产品图?

enter image description here

3 个答案:

答案 0 :(得分:1)

你可以尝试这个,你需要在你的文件名中添加文件扩展名,因为你已经将文件名转换为md5编码,即使它也编码了扩展名。在这种情况下,您需要添加文件扩展名。

$Filepath = $_FILES['myfile']['name'];
$filenamekey = md5(uniqid($Filepath, true));     
$Fileext = pathinfo($Filepath, PATHINFO_EXTENSION);
$filenamekey = $filenamekey.'.'.$Fileext;

答案 1 :(得分:1)

获取文件扩展名并将其添加到$filenamekey

$extension = pathinfo($_FILES["myfile"]["name"], PATHINFO_EXTENSION);
$filenamekey .= "." . $extension;

答案 2 :(得分:0)

你可以这样做:

$filenamekey = md5(uniqid($_FILES["myfile"]["name"], true));

// find the original extension and append it to the filename
$filenamekey .= "." . pathinfo($_FILES["myfile"]["name"], PATHINFO_EXTENSION);

move_uploaded_file($_FILES["myfile"]["tmp_name"],$output_dir.$filenamekey);