我有一个上传脚本,并修复了几件事的上传,我想md5加密文件名。这是我正在使用的php脚本的顶部。
$target_dir = "file_dir/"; $target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]); $uploadOk = 1; $imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);
我试图像这样使用md5()方法
md5($target_dir . basename($_FILES["fileToUpload"]["name"]));
哪个不起作用。刚回来是一个错误。 如果你们在这个脚本中需要更多的代码来帮助我,请在评论中告诉我,我将制作我的脚本的虚拟副本。提前谢谢:D
答案 0 :(得分:0)
您正尝试在不存在的路径上使用basename:$ _FILES [“fileToUpload”] [“name”]。这只是文件名,而不是服务器中的路径。
您可以将其用于唯一文件名:
md5($target_dir . '/' . $_FILES["fileToUpload"]["name"])
显然,您需要确保文件名始终是唯一的。如果这不是一个选项,那么你也可以使用,这更有可能是唯一的:
md5($target_dir . '/' . $_FILES["fileToUpload"]["tmp_name"])
如果你想确保它始终是唯一的,那么这将起作用:
md5($target_dir . '/' . $_FILES["fileToUpload"]["tmp_name"] . time())
有几种选择。这取决于你想要用它们做什么。
答案 1 :(得分:0)
迟到的答案,但希望它可以帮到你。 您正尝试将该目录与该文件一起加密。这必定会导致错误。
您应该只加密文件并添加文件扩展名:
$file_ext = strrchr($_FILES["fileToUpload"]["name"], '.');
$target_file = md5(basename($_FILES["fileToUpload"]["name"])).$file_ext;
然后传递它以移动 move_uploaded_file
move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_dir.$target_file)