File
文件hash
hash_file
计算指定文件的 MD5 散列值
/* 创建一个要计算哈希值的文件 */
file_put_contents('example.txt', 'test');
echo hash_file('md5', 'example.txt');
// 098f6bcd4621d373cade4e832627b4f6
使用场景:
判断一个文件是否已经上传(避免重复上传同一文件)
md5_file
计算指定文件的 MD5 散列值
/* 创建一个要计算哈希值的文件 */
file_put_contents('example.txt', 'test');
echo md5_file('example.txt');
// 098f6bcd4621d373cade4e832627b4f6
使用场景:
判断一个文件是否已经上传(避免重复上传同一文件)
获取文件的mime类型
echo finfo_file(finfo_open(FILEINFO_MIME_TYPE), 'disable.xlsx'); // application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
move_uploaded_file
将上传的文件移动到新位置
本函数检查并确保由filename指定的文件是合法的上传文件(即通过 PHP 的 HTTP POST 上传机制所上传的)
如果文件合法,则将其移动为由destination指定的文件。
这种检查显得格外重要,如果上传的文件会影响用户或本系统的其他用户的话。
foreach ($_FILES["pictures"]["error"] as $key => $error) {
if ($error == UPLOAD_ERR_OK) {
$tmp_name = $_FILES["pictures"]["tmp_name"][$key];
$name = $_FILES["pictures"]["name"][$key];
move_uploaded_file($tmp_name, "/uploads/$name");
}
}
is_uploaded_file
判断文件是否是通过 HTTP POST 上传的
if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {
echo "File " . $_FILES['userfile']['name'] . " uploaded successfully.\n";
echo "Displaying contents\n";
readfile($_FILES['userfile']['tmp_name']);
} else {
echo "Possible file upload attack: ";
echo "filename '" . $_FILES['userfile']['tmp_name'] . "'.";
}