获取MD5
- 上传后将文件移动到实际目录
- 使用移动后的文件名作为hash_file的参数
这样就可以获取到上传后的实际文件的MD5值。
// 文件上传后,移动到uploads目录下
$target_file = 'uploads/' . basename($_FILES['upload']['name']);
move_uploaded_file($_FILES['upload']['tmp_name'], $target_file);
// 计算上传后文件md5值
$md5 = hash_file('md5', $target_file);
echo $md5;
获取文件尺寸
- 使用 filesize() 函数获取文件字节大小
- 将字节转换为M,计算公式为字节数除以1024再除以1024
- 使用 round() 函数格式化为两位小数
这样就可以方便地获取规范化后的文件大小。
// 获取上传文件大小(字节)
$size = filesize($target_file);
// 转换为M并保留两位小数
$size_m = round($size / 1024 / 1024, 2);
// 输出
echo "Size: {$size_m} M";
清空目录
// 获取上传文件信息
$target_file = 'uploads/file.jpg';
// 清空文件所在目录
$directory = dirname($target_file);
array_map('unlink', glob("$directory/*"));
// 删除目录
rmdir($directory);
主要步骤:
- 使用 dirname() 函数获取文件所在目录路径
- 使用 glob() 函数获取目录下所有文件
- 使用 array_map 和 unlink 函数遍历删除目录下文件
- 使用 rmdir() 删除空目录
这样就可以在获取文件信息后,清空该文件的所在目录。
需要注意:
- 确认只清空指定目录,避免影响其他目录
- 检查目录是否为空后再删除目录
- 考虑操作权限问题
请根据实际需求,谨慎使用文件删除操作。
重命名上传的文件
// 原文件名
$filename = $_FILES['upload']['name'];
// 获取文件扩展名
$extension = pathinfo($filename, PATHINFO_EXTENSION);
// 定义新文件名
$new_name = 'myfile_' . time() . '.' . $extension;
// 上传目录
$target_dir = 'uploads/';
// 拼接完整路径
$target_file = $target_dir . $new_name;
// 移动文件并重命名
move_uploaded_file($_FILES['upload']['tmp_name'], $target_file);
主要步骤:
- 获取上传文件的扩展名
- 拼接新的文件名,例如可以加上时间戳区分
- move_uploaded_file时指定新的目标文件名
这样上传后的文件就可以被重命名而不是使用原文件名。
需要注意目标目录需要可写权限。
根据需要,也可以将重命名封装成函数,上传文件时指定新文件名。
另一种重命名方法
// 原文件名
$old_name = 'file.txt';
// 新文件名
$new_name = 'newname.txt';
// 文件所在目录
$dir = '/path/to/directory/';
// 拼接完整的文件路径
$old_path = $dir . $old_name;
$new_path = $dir . $new_name;
// 修改文件名
rename($old_path, $new_path);
主要步骤:
- 定义原文件名和新文件名
- 拼接包含完整路径的原文件名和新文件名
- 使用rename函数修改文件名,传入原文件名和新文件名
rename会直接修改指定文件的文件名,非常简单方便。
注意:
- 确保有文件名修改权限
- 新文件名不要与目录下已存在的文件名冲突
修改成功后,可以用file_exists检查新文件名是否生效。
1. 官方交流QQ群,添加多个不批。建议使用安卓手机或电脑申请。
飞云脚本圈: 586333520
Auto.js学习交流③群:286635606
Auto.js学习交流②群:712194666(满员)
IOS免越狱自动化测试群:691997586
2. 盗版,破解有损他人权益和违法作为,请各位会员支持正版。
3. 本站部分资源来源于用户上传和网络搜集,如有侵权请提供版权证明并联系站长删除。
4.如未特别申明,本站的技术性文章均为原创,未经授权,禁止转载/搬运等侵权行为。
5.全站所有付费服务均为虚拟商品,购买后自动发货。售出后概不接受任何理由的退、换。注册即为接受此条款。
6.如果站内内容侵犯了您的权益,请联系站长删除。
飞云脚本 » php上传文件的常用操作
飞云脚本圈: 586333520
Auto.js学习交流③群:286635606
Auto.js学习交流②群:712194666(满员)
IOS免越狱自动化测试群:691997586
2. 盗版,破解有损他人权益和违法作为,请各位会员支持正版。
3. 本站部分资源来源于用户上传和网络搜集,如有侵权请提供版权证明并联系站长删除。
4.如未特别申明,本站的技术性文章均为原创,未经授权,禁止转载/搬运等侵权行为。
5.全站所有付费服务均为虚拟商品,购买后自动发货。售出后概不接受任何理由的退、换。注册即为接受此条款。
6.如果站内内容侵犯了您的权益,请联系站长删除。
飞云脚本 » php上传文件的常用操作