存储前更改图像名称

时间:2015-06-07 09:10:33

标签: php

这是我的代码。我想在将文件名存储到uploads文件夹之前更改文件名,但似乎无法弄清楚如何。感谢。

// Check for errors
if($_FILES['file_upload']['error'] > 0){
die('An error ocurred when uploading.');
}

if(!getimagesize($_FILES['file_upload']['tmp_name'])){
die('Please ensure you are uploading an image.');
}

// Check filetype
if($_FILES['file_upload']['type'] != 'image/png'){
die('Unsupported filetype uploaded.');
}

// Check filesize
if($_FILES['file_upload']['size'] > 700000){
die('File uploaded exceeds maximum upload size.');
}


// Check if the file exists
if(file_exists('../uploads/profilepics/' . $_FILES['file_upload']['name'])){
die('File with that name already exists.');
}

// Upload file
if(!move_uploaded_file($_FILES['file_upload']['tmp_name'], '../uploads/profilepics/' . $_FILES['file_upload']['name'])){
die('Error uploading file - check destination is writeable.');
}

// File uploaded succesfully - upload to server and to DB
die('File uploaded successfully.');

1 个答案:

答案 0 :(得分:2)

通过生成新的唯一字符串并从上传的文件名中获取扩展名来创建新文件名,然后将其传递给move_uploaded_file

$extension = pathinfo($_FILES['file_upload']['name'], PATHINFO_EXTENSION);
$nFileName = md5(time()).'.'.$extension;


// Upload file
if(!move_uploaded_file($_FILES['file_upload']['tmp_name'], '../uploads/profilepics/' . $nFileName)){
    die('Error uploading file - check destination is writeable.');
}