PHP MD5文件名

PHP MD5文件名,php,file,upload,md5,Php,File,Upload,Md5,我有一个上传脚本,为了修复一些事情的上传,我想用md5加密文件名。下面是我正在使用的php脚本的顶部 $target_dir=“file_dir/”; $target\u file=$target\u dir。basename($_文件[“fileToUpload”][“name”]); $uploadOk=1; $imageFileType=pathinfo($target\u文件,pathinfo\u扩展名) 我尝试像这样使用md5()方法 md5($target_dir.basename(

我有一个上传脚本,为了修复一些事情的上传,我想用md5加密文件名。下面是我正在使用的php脚本的顶部

$target_dir=“file_dir/”;
$target\u file=$target\u dir。basename($_文件[“fileToUpload”][“name”]);
$uploadOk=1;
$imageFileType=pathinfo($target\u文件,pathinfo\u扩展名)

我尝试像这样使用md5()方法

md5($target_dir.basename($_FILES[“fileToUpload”][“name”])

这是行不通的。只是作为一个错误回来了。
如果你们需要这个脚本中的更多代码来帮助我,请在注释中告诉我,我将制作一个脚本的虚拟副本。提前感谢:D

您试图在不存在的路径上使用basename:$\u FILES[“fileToUpload”][“name”]。这只是文件名,而不是服务器中的路径

您可以将其用于唯一文件名:

md5($target_dir . '/' . $_FILES["fileToUpload"]["name"])
显然,您需要确保文件名始终是唯一的。如果这不是一个选项,那么您也可以使用,这很可能是独特的:

md5($target_dir . '/' . $_FILES["fileToUpload"]["tmp_name"])
如果要确保其始终是唯一的,则这将起作用:

md5($target_dir . '/' . $_FILES["fileToUpload"]["tmp_name"] . time())

有几种选择。这取决于你想用它们做什么。

迟些回答,但希望它能帮助你。 您正在尝试将目录与文件一起加密。这一定是导致错误的原因

您应该只加密文件并添加文件扩展名:

$file_ext = strrchr($_FILES["fileToUpload"]["name"], '.');
$target_file = md5(basename($_FILES["fileToUpload"]["name"])).$file_ext;
然后将其传递到移动移动上传的文件

move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_dir.$target_file)

是的,请发布更多代码-请看,我发现文件名与“fileToUpload”有关,我认为如果所有代码都在一个文件中,那将是一个有用的工具>我使用了“md5($target_dir./'.$\u FILES[“fileToUpload”][“name”])方法。但是,它没有对名称进行md5加密。只是什么都没做。。。“[”name“]”的任何其他方法?您可以对$文件进行var\u转储吗?听起来好像文件名是空的。所以,我尝试使用这个<代码>$target\u file=$target\u dir。md5($_文件[“fileToUpload”])。基本名称([“名称])谁完成了任务。但它也加密了文件扩展名。这意味着它没有通过我的安全代码,所以文件无法上传。我只想加密名称,而不是扩展名。我可以做一个
$target\u dir=“target\u dir/”;/$target\u file=$target\u dir。basename($_文件[“fileToUpload”][“name”])$target\u file=$target\u dir。basename($_FILES[“fileToUpload”][“name”]);//$target\u file=$target\u dir。md5($_文件[“fileToUpload”][“name”]);//加密文件名$上传OK=1$imageFileType=pathinfo($target\u文件,pathinfo\u扩展名)$target_file=md5($target_file)。。$imageFileType