Programing

업로드 된 파일을 디렉토리에 저장하기 전에 이름을 바꾸는 방법은 무엇입니까?

crosscheck 2020. 11. 17. 07:47
반응형

업로드 된 파일을 디렉토리에 저장하기 전에 이름을 바꾸는 방법은 무엇입니까?


아래는 디렉토리에 파일을 업로드하기 위해 사용한 코드입니다. 잘 작동합니다. 내 주요 질문은 다음과 같습니다.

인 move_uploaded_file ()는 디렉토리에 업로드 된 파일을 저장하는 하나이며, 그것은 것이 내 생각이다 인 move_uploaded_file ()가 하나입니다 그것을위한 세트 이름이.

파일 이름을 임의의 숫자로 변경하려면 어떻게해야합니까?

아래에서 시도했습니다.

$allowedExts = array("gif", "jpeg", "jpg", "png");
$temp = explode(".", $_FILES["file"]["name"]);
$extension = end($temp);
if ((($_FILES["file"]["type"] == "image/gif") || ($_FILES["file"]["type"] == "image/jpeg") || ($_FILES["file"]["type"] == "image/jpg") || ($_FILES["file"]["type"] == "image/pjpeg") || ($_FILES["file"]["type"] == "image/x-png") || ($_FILES["file"]["type"] == "image/png")) && ($_FILES["file"]["size"] < 100000) && in_array($extension, $allowedExts)) {
    if ($_FILES["file"]["error"] > 0) {
        echo "Return Code: " . $_FILES["file"]["error"] . "<br>";
    } else {

        $fileName = $temp[0] . "." . $temp[1];
        $temp[0] = rand(0, 3000); //Set to random number
        $fileName;

        if (file_exists("../img/imageDirectory/" . $_FILES["file"]["name"])) {
            echo $_FILES["file"]["name"] . " already exists. ";
        } else {
            move_uploaded_file($_FILES["file"]["tmp_name"], "../img/imageDirectory/" . $_FILES["file"]["name"]);
            echo "Stored in: " . "../img/imageDirectory/" . $_FILES["file"]["name"];
        }
    }
} else {
    echo "Invalid file";
}

$ _FILES [ "file"] [ "name"]같은 변수를 변경 하고 $ fileName으로 바꾸려고했습니다. 변수를 사용하여 새 이름을 저장할 수 있습니다.


의 두 번째 매개 변수에서 파일 이름을 변경하여 파일 이름을 간단히 변경할 수 있습니다 move_uploaded_file.

대신에

move_uploaded_file($_FILES["file"]["tmp_name"], "../img/imageDirectory/" . $_FILES["file"]["name"]);

사용하다

$temp = explode(".", $_FILES["file"]["name"]);
$newfilename = round(microtime(true)) . '.' . end($temp);
move_uploaded_file($_FILES["file"]["tmp_name"], "../img/imageDirectory/" . $newfilename);

귀하의 질문을 반영하도록 변경, 현재 시간을 기준으로 임의의 번호를 생성하고 원래 업로드 된 파일의 확장자를 추가합니다.


이것을 시도 할 수 있습니다.

$newfilename= date('dmYHis').str_replace(" ", "", basename($_FILES["file"]["name"]));

move_uploaded_file($_FILES["file"]["tmp_name"], "../img/imageDirectory/" . $newfilename);

당신은 정확하게 추측합니다. 에 대한 매뉴얼 페이지를 읽으십시오 move_uploaded_file. 두 번째 매개 변수를 파일을 저장할 위치로 설정하십시오.

작동하지 않으면 $fileName. 최신 코드를 게시하십시오.


move_uploaded_file파일이 성공적으로 당신이 로그에 경고 당신에게 코드에 뭔가를 넣을 수 있습니다 이동하지 않은 경우 그렇게하면, 그건 당신이 알아낼 도움이 false를 돌려줍니다 왜 파일의 이름을 변경하여 데 문제가

참고 URL : https://stackoverflow.com/questions/18705639/how-to-rename-uploaded-file-before-saving-it-into-a-directory

반응형