2012-04-28 3 views
1

이미지를 내 서버에 업로드 할 때 이미지의 이름을 바꾸려고합니다. 일반적으로이 작업을 수행하는 쉬운 방법이 있습니까? 아래는 내가 사용하고있는 PHP 코드이다. HTML 양식에서 숨겨진 필드로 전달하는 변수로 바꾸고 싶습니다.PHP 이미지 업 로더 이미지 이름 바꾸기?

//variable from hidden field on form which is from mysql database 
$imageName = $_POST['image_rename']; 

if ((($_FILES["file"]["type"] == "image/gif") || ($_FILES["file"]["type"] == "image/jpeg") || ($_FILES["file"]["type"] == "image/jpg") || ($_FILES["file"]["type"] == "image/pjpeg")) && ($_FILES["file"]["size"] < 8000000)) 
    { 
    if ($_FILES["file"]["error"] > 0) 
    { 
    echo "Return Code: " . $_FILES["file"]["error"] . "<br />"; 
    } 
    else 
    { 
    echo "Upload: " . $_FILES["file"]["name"] . "<br />"; 
    echo "Type: " . $_FILES["file"]["type"] . "<br />"; 
    echo "Size: " . ($_FILES["file"]["size"]/1024) . " Kb<br />"; 
    echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />"; 

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

그는 파일 이름을 제공 할 것이라고 말했다 때문에, 확장자가 아니 – ilanco

답변

1

move_uploaded_file() 기능을 변경해보십시오; 함수 내에서 원하는 이름을 추가하십시오. 그냥 적절한 확장을 잡아 확인, 뭔가 같은 :

$parts=explode('.',$_FILES['file']['name']); 
$newName=$imageName.'.'.$parts[(count($parts)-1)]; 
move_uploaded_file($_FILES['file']['tmp_name'],'../uploads/'.$newName); 
+1

end ($ parts);를 사용할 수 있습니다. count - 1 대신에 – Sedz

0

변경

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

move_uploaded_file($_FILES["file"]["tmp_name"], "../uploads/" . $imageName); 
+0

잠재적으로 위험 할 수있는 클라이언트에서 체크되지 않은 입력을 사용하지 않는 숨겨진 입력을 통해 '$ imageName = $ _POST [ 'image_rename'];';) – Sedz

+0

을 사용하지 않는 – fhugas