2017-01-13 1 views
0

질문 :원본 파일 이름을 유지하면서 폴더에 파일이 있으면 파일을 업로드하고 이름을 바꾸는 방법은 무엇입니까?

우리가 어떻게 폴더에 파일을 업로드 및 특정 이름과 파일 이름이 우리가 폴더 안에 파일을 기존 이름을 변경 존재하는 경우 이름을 바꿀 수 있습니까? 예를 들어

:

1 : 이름 바꾸기 파일 "갱신"및 허용 확장을 유지하기 위해 업로드하는 동안.

Booking.xlsx ---> 이름 바꾸기 ---> update.xlsx

2 : update.xlsx 폴더에 존재하는 경우, 우리는 확장 이름으로 현재 시간 날짜 형식으로 이름을 바꿉니다.

(YYYY-MM-ISO 형식 : mm : ss.sTZD입니다)

update.xlsx ---> 폴더 내에 이름 바꾸기 ---> 2017-01-14T19 : 20 : 30.45 + 01 : 00.xlsx 파일 이름은

경우 존재합니다

$allowed = array('png', 'jpg', 'gif', 'xlsx','zip'); 
if(isset($_FILES['upl']) && $_FILES['upl']['error'] == 0){ 
$extension = pathinfo($_FILES['upl']['name'], PATHINFO_EXTENSION); 
if(!in_array(strtolower($extension), $allowed)){ 
    echo '{"status":"error"}'; 
    exit; 
} 
if(move_uploaded_file($_FILES['upl']['tmp_name'], 'uploads/'.$_FILES['upl']['name'])){ 
    echo '{"status":"success"}'; 
    exit; 
} 
} 
echo '{"status":"error"}'; 
exit; 

상세 정보 :

여기 내 업로드 파일의 코드입니다 기존 파일의 이름을 폴더 내부의 날짜 형식으로 바꾸고 파일을 특정 이름으로 업로드/이름 바꾸기 업데이트 파일이 존재하는지 확인한 다음 메시지를 표시 할 수 있지만 질문에 따라 기존 파일의 이름을 바꾸는 방법 번호 2 위.

+1

'file_exists' - 파일이 존재하는지 확인하십시오. –

+0

한 가지 더 : 직접 json type respnses를 만들지 마십시오. 대신에'json_encode'를 사용하십시오 :'$ response = [ 'status'=> 'success']; echo json_encode ($ response)'; – Peon

+0

기존 파일의 이름을 날짜 형식으로 바꾸는 방법은 무엇입니까? 질문 2에 따르면! – Jomla

답변

0

rename 방법을 사용할 수 있습니다.

$allowed = array('png', 'jpg', 'gif', 'xlsx','zip'); 
if(isset($_FILES['upl']) && $_FILES['upl']['error'] == 0){ 
    $extension = pathinfo($_FILES['upl']['name'], PATHINFO_EXTENSION); 
    if(!in_array(strtolower($extension), $allowed)){ 
     echo '{"status":"error"}'; 
     exit; 
    } 
    $destination = "uploads/update.xlsx"; 
    if(file_exists($destination)){ 
     rename($destination, "uploads/" . date("Y-m-d\TH:i:sP") . ".xlsx"); 
    } 

    if(move_uploaded_file($_FILES['upl']['tmp_name'], $destination)){ 
     echo '{"status":"success"}'; 
     exit; 
    } 
} 
echo '{"status":"error"}'; 
exit; 
+0

코드에 구문 오류가 있습니다. – Jomla

관련 문제