업로드한 파일을 디렉토리에 저장하기 전에 이름을 변경하는 방법
아래는 제가 파일을 디렉토리에 업로드하기 위해 사용한 코드입니다.잘 되고 있어요.주요 질문은 다음과 같습니다.
업로드된 파일을 디렉토리에 저장하는 것은 move_movel_file()입니다.또한 move_movel_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);
질문을 반영하도록 변경되었습니다.는 현재 시간에 따라 난수를 생성하고 원래 업로드된 파일에서 확장자를 추가합니다.
/* create new name file */
$filename = uniqid() . "-" . time(); // 5dab1961e93a7-1571494241
$extension = pathinfo( $_FILES["file"]["name"], PATHINFO_EXTENSION ); // jpg
$basename = $filename . "." . $extension; // 5dab1961e93a7_1571494241.jpg
$source = $_FILES["file"]["tmp_name"];
$destination = "../img/imageDirectory/{$basename}";
/* move the file */
move_uploaded_file( $source, $destination );
echo "Stored in: {$destination}";
맞혀봐.의 메뉴얼 페이지를 참조해 주세요.파일을 보존하는 위치에 두 번째 파라미터를 설정합니다.
만약 그것이 작동하지 않는다면, 당신의 시스템에 문제가 있는 것입니다.$fileName
최신 코드를 게시해 주세요.
시험해 볼 수 있습니다.
$newfilename= date('dmYHis').str_replace(" ", "", basename($_FILES["file"]["name"]));
move_uploaded_file($_FILES["file"]["tmp_name"], "../img/imageDirectory/" . $newfilename);
그move_uploaded_file
파일이 정상적으로 이동되지 않으면 false가 반환됩니다.이러한 경우, 코드에 무언가를 입력해 로그에 경고할 수 있습니다.이것에 의해, 파일명의 변경에 문제가 있는 이유를 알 수 있습니다.
언급URL : https://stackoverflow.com/questions/18705639/how-to-rename-uploaded-file-before-saving-it-into-a-directory
'programing' 카테고리의 다른 글
MySQL 8.0에서의 phpMyAdmin (0) | 2022.09.17 |
---|---|
Vuex 플러그인을 동적으로 등록하시겠습니까? (0) | 2022.09.17 |
프로덕션 환경 및/또는 상업적 목적으로 사용할 수 있는 무료 버전의 Java는 무엇입니까? (0) | 2022.09.17 |
Panda Data Frame 사전 목록 작성 (0) | 2022.09.17 |
라라벨:현재 루트명을 취득하는 방법(v5...v7) (0) | 2022.09.17 |