파일을 디렉토리에 저장하기 전에 업로드 한 파일의 이름을 바꾸는 방법은 무엇입니까?
PHP파일을 디렉토리에 저장하기 전에 업로드 한 파일의 이름을 바꾸는 방법은 무엇입니까?
아래는 파일을 디렉토리에 업로드하기 위해 사용한 코드입니다. 그것은 잘 작동합니다. 내 주요 질문은 :
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으로 바꿔 보았습니다. 새 이름을 저장할 수 있도록 변수.
해결법
-
==============================
1.move_uploaded_file의 두 번째 매개 변수에서 파일 이름을 변경하여 파일 이름을 간단히 변경할 수 있습니다.
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);
질문을 반영하도록 변경되었으며 현재 시간을 기준으로 임의의 숫자를 생성하고 원래 업로드 된 파일의 확장자를 추가합니다.
-
==============================
2.이것을 시도해 볼 수 있습니다.
이것을 시도해 볼 수 있습니다.
$newfilename= date('dmYHis').str_replace(" ", "", basename($_FILES["file"]["name"])); move_uploaded_file($_FILES["file"]["tmp_name"], "../img/imageDirectory/" . $newfilename);
-
==============================
3.당신은 정확하게 추측합니다. move_uploaded_file에 대한 매뉴얼 페이지를 읽으십시오. 파일을 저장하려는 두 번째 매개 변수를 설정하십시오.
당신은 정확하게 추측합니다. move_uploaded_file에 대한 매뉴얼 페이지를 읽으십시오. 파일을 저장하려는 두 번째 매개 변수를 설정하십시오.
작동하지 않으면 $ fileName에 문제가 있습니다. 가장 최근의 코드를 게시하십시오.
from https://stackoverflow.com/questions/18705639/how-to-rename-uploaded-file-before-saving-it-into-a-directory by cc-by-sa and MIT license
'PHP' 카테고리의 다른 글
양식 제출시 PHP $ _POST 배열이 비어 있습니다. (0) | 2018.09.10 |
---|---|
mysqli_fetch_array ()는 매개 변수 1이 mysqli_result, boolean이 [duplicate] (0) | 2018.09.09 |
PHP의 MVC 뷰 이해하기 (0) | 2018.09.09 |
PHP로 메모리를 비우는 것이 더 낫다 : unset () 또는 $ var = null (0) | 2018.09.09 |
PHP (GET, POST, PUT 또는 DELETE)에서 요청 유형 감지 (0) | 2018.09.09 |