我找到了一个用于获取文件名的md5的脚本,然后我用它来重命名该文件。但我意识到这是错误的,我需要实际获取文件的md5而不仅仅是它的名字。
想知道你是怎么做到的。这是我目前的情况:
function convertFileToMD5($filename) {
$filename_parts = explode('.',$filename);
$count = count($filename_parts);
if($count> 1) {
$ext = $filename_parts[$count-1];
unset($filename_parts[$count-1]);
$filename_to_md5 = implode('.',$filename_parts);
$newName = md5($filename_to_md5). '.' . $ext ;
} else {
$newName = md5($filename);
}
return $newName;
}
我使用此功能
function uploadImage($image, $directory) {
$errors= array();
$file_name = $image['name'];
$file_size = $image['size'];
$file_tmp = $image['tmp_name'];
$file_type= $image['type'];
if($file_size > 2097152){
$errors[]='File size must be under 2 MB';
}
if(empty($errors)==true){
$newName = convertFileToMD5($file_name);
move_uploaded_file($file_tmp,"$directory".$newName);
$image = "$directory" . $newName;
return $image;
}else{
return $errors;
}
}
答案 0 :(得分:3)
你想要hash_file函数:http://php.net/manual/en/function.hash-file.php
hash_file('md5', 'your_file.txt');
或更具体的md5_file函数:http://php.net/manual/en/function.md5-file.php
md5_file('your_file.txt');