odd*_*uck 166 php directory move unlink
我需要允许我的网站上的用户在上传后将其图像从服务器上删除,如果他们不再需要它们的话.我以前unlink
在PHP中使用该函数,但后来被告知这可能存在风险并且存在安全问题.(上面的代码:)
if(unlink($path.'image1.jpg')){
// deleted
}
Run Code Online (Sandbox Code Playgroud)
相反,我现在只想将文件移动到另一个文件夹中.这必须能够在他们首次上传文件后很长时间内完成,以便他们在登录帐户时.如果我有存储用户图像的主文件夹:
user/
Run Code Online (Sandbox Code Playgroud)
然后在一个名为del的文件夹中,这是放置其不需要的图像的目的地:
user/del/
Run Code Online (Sandbox Code Playgroud)
是否有将文件移动到其他文件夹的命令?所以说:
user/image1.jpg
Run Code Online (Sandbox Code Playgroud)
移动到/变成
user/del/image1.jpg
Run Code Online (Sandbox Code Playgroud)
MKr*_*ers 397
该rename
功能可以做到这一点
rename('image1.jpg', 'del/image1.jpg');
如果要将现有文件保留在应使用的相同位置 copy
copy('image1.jpg', 'del/image1.jpg');
如果要移动上传的文件,请使用move_uploaded_file
,虽然这与rename
此函数几乎相同,但也检查给定文件是通过文件上传的文件POST
,这可以防止例如移动本地文件
$uploads_dir = '/uploads';
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_dir/$name");
}
}
Run Code Online (Sandbox Code Playgroud)
来自docs的代码snipet
Ben*_*une 89
使用rename()函数.
rename("user/image1.jpg", "user/del/image1.jpg");
Run Code Online (Sandbox Code Playgroud)
Nab*_*.Z. 12
如果要使用保留原始文件名在新路径中移动文件.用这个:
$source_file = 'foo/image.jpg';
$destination_path = 'bar/';
rename($source_file, $destination_path . pathinfo($source_file, PATHINFO_BASENAME));
Run Code Online (Sandbox Code Playgroud)