在PHP中将文件名更改为uniqid
我希望修改下面的代码,接受随机生成的唯一id,以使用php uniqid函数替换名称。我试过两种方法,但都没有成功在PHP中将文件名更改为uniqid,php,file,Php,File,我希望修改下面的代码,接受随机生成的唯一id,以使用php uniqid函数替换名称。我试过两种方法,但都没有成功 move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]); $ipath = "upload/"; $ipath .= $_FILES["file"]["name"]; 有人知道我怎样才能做到这一点吗 编辑:我询问将uniqid函数放在何处,以便文件以uniqi
move_uploaded_file($_FILES["file"]["tmp_name"],
"upload/" . $_FILES["file"]["name"]);
$ipath = "upload/";
$ipath .= $_FILES["file"]["name"];
有人知道我怎样才能做到这一点吗
编辑:我询问将uniqid函数放在何处,以便文件以uniqid.extension存储在我服务器上的文件夹中
$newName = md5_file($ipath);
将生成md5的文件内容,应该是非常独特的
move_uploaded_file($_FILES["file"]["tmp_name"],
"upload/" . uniqid());
或者,如果要保留文件扩展名:
$fileInfo = pathinfo($_FILES["file"]["name"]);
move_uploaded_file($_FILES["file"]["tmp_name"],
"upload/" . uniqid() . '.' . $fileInfo['extension']);
\\编辑:要使用$ipath变量
$fileInfo = pathinfo($_FILES["file"]["name"]);
$ipath = "upload/" . uniqid() . '.' . $fileInfo['extension'];
move_uploaded_file($_FILES["file"]["tmp_name"], $ipath);
$aaa=uniqid();
$Image_New_Name=$aaa.“u”.basename($\u FILES[“fileToUpload”][“Name”]);
$target_dir=“upload/”$Image\u New\u Name;
如果(isset($_POST['submit'])){
//$target_file=$target_dir.basename($_FILES[“fileToUpload”][“name”]);
如果(移动上传的文件($文件[“fileToUpload”][“tmp\u名称”],$target\u目录)){
回显“文件”。已上载basename($\u文件[“fileToUpload”][“name”]);
回声“
”;
}
$id=$_POST['id'];
$fullname=$_POST['fullname'];
$password=$_POST['password'];
$email=$_POST['email'];
$gender=$_POST['gender'];
$about\u me=$\u POST['about\u me'];
$state=$_POST['state'];
$country=$_POST['country'];
如果($_文件[“fileToUpload”][“name”]!=“”){
$image=$_文件[“fileToUpload”][“name”];
}否则{
$image='BlankFaceGraphic.jpg';
}
$sql=“插入注册表(id、全名、密码、电子邮件、性别、关于我、州、国家、图像)
价值观
(“$id”、“$fullname”、“$password”、“$email”、“$gender”、“$about_me”、“$state”、“$country”、“$Image_New_Name”);
您的问题是如何生成唯一的文件名,还是将其放在move\u uploaded\u file
调用中?我想问的是将uniqid函数放在哪里。好吧,@Connun给了您answer@user981053实际上,我不太明白这里的问题是什么…我已经尝试了几种方法,但都没有成功。
毕竟,它只是获取文件扩展名和简单字符串连接。编辑为使用实际文件名而不是临时文件名来检索文件扩展名您知道如何将ipath设置为等于新文件名吗?
$aaa = uniqid();
$Image_New_Name = $aaa."_".basename($_FILES["fileToUpload"]["name"] );
$target_dir = "upload/".$Image_New_Name;
if(isset($_POST['submit'])) {
//$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"] );
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_dir )) {
echo "The file ". basename( $_FILES["fileToUpload"]["name"]) ." has been uploaded.";
echo "<br/>";
}
$id = $_POST['id'];
$fullname = $_POST['fullname'];
$password = $_POST['password'];
$email = $_POST['email'];
$gender = $_POST['gender'];
$about_me = $_POST['about_me'];
$state = $_POST['state'];
$country = $_POST['country'];
if($_FILES["fileToUpload"]["name"] != "") {
$image = $_FILES["fileToUpload"]["name"];
} else {
$image='BlankFaceGraphic.jpg';
}
$sql="insert into register(id,fullname,password,email,gender,about_me,state,country,image)
values
('$id','$fullname','$password','$email','$gender','$about_me','$state','$country','$Image_New_Name')";