2013-12-12 69 views
0

我需要使用md5/uniqid名称上传图片。PHP使用md5名称上传图片

PHP:

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

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

此举图像转换成文件夹md5 name但上传文件没有任何图像extension/type。我怎样才能解决这个问题?

Pic?

enter image description here

回答

1

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

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

你可以试试这个,你需要添加文件扩展名的文件名,因为你已经将您的文件名如MD5编码,即使它编码的扩展为好。在这种情况下,您需要添加文件扩展名。

$Filepath = $_FILES['myfile']['name']; 
$filenamekey = md5(uniqid($Filepath, true));  
$Fileext = pathinfo($Filepath, PATHINFO_EXTENSION); 
$filenamekey = $filenamekey.'.'.$Fileext; 
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);