웹 사이트 사용자가 더 이상 원하지 않는 경우 이미지를 업로드 한 후 서버에서 이미지를 삭제하도록 허용해야합니다. 나는 이전 unlink
에 PHP 에서 함수를 사용하고 있었지만 그 이후에는 이것이 매우 위험하고 보안 문제가 될 수 있다고 들었습니다. (이전 코드 🙂
if(unlink($path.'image1.jpg')){
// deleted
}
대신 파일을 다른 폴더로 간단히 옮기고 싶습니다. 계정에 로그인 할 때마다 파일을 처음 업로드 한 후 오랜 시간이 걸릴 수 있어야합니다. 사용자 이미지를 저장하는 기본 폴더가있는 경우 :
user/
그런 다음 del이라는 폴더 안에 원하지 않는 이미지를 넣을 대상입니다.
user/del/
파일을 다른 폴더로 이동하는 명령이 있습니까? 그래서 그것은 말합니다 :
user/image1.jpg
이사 / 이민
user/del/image1.jpg
답변
이 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");
}
}
문서에서 코드 스 니펫
답변
rename () 함수를 사용하십시오 .
rename("user/image1.jpg", "user/del/image1.jpg");
답변
원본 파일 이름을 유지하면서 새 경로로 파일을 이동하려는 경우. 이것을 사용하십시오 :
$source_file = 'foo/image.jpg';
$destination_path = 'bar/';
rename($source_file, $destination_path . pathinfo($source_file, PATHINFO_BASENAME));
답변
일부 솔루션은 먼저 파일을 위에서 언급 한대로 복사 ()하고 대상 파일이 존재하는 경우 이전 현지화에서 unlink () 파일을 해제합니다. 또한 연결을 해제하기 전에 MD5 체크섬을 확인하여 확실하게 확인할 수 있습니다
답변
이동할 함수를 작성하십시오.
function move_file($file, $to){
$path_parts = pathinfo($file);
$newplace = "$to/{$path_parts['basename']}";
if(rename($file, $newplace))
return $newplace;
return null;
}
답변
쉘을 사용하여 모든 데이터 파일을 읽은 다음 배열에 할당하십시오. 그런 다음 파일을 최상위 위치로 옮깁니다.
i=0
for file in /home/*.gz; do
$file
arr[i]=$file
i=$((i+1))
done
mv -f "${arr[0]}" /var/www/html/
답변
사용 사본 () 및 연결 해제 () 함수
$moveFile="path/filename";
if (copy($csvFile,$moveFile))
{
unlink($csvFile);
}