2017-01-13 3 views
0

Вопрос:Как загрузить файл и переименовать, если файл существует в папке, пока мы сохраняем исходное имя файла?

Как мы можем загрузить файл в папку и переименовать его в конкретное имя, и если имя файла существует, мы переименовывать существующий файл внутри папки?

Например:

1: Переименовать файл при загрузке в «обновление» и сохранить допустимое расширение.

Booking.xlsx ---> переименовывать ---> update.xlsx

2: Если update.xlsx будет существовать в папке, переименовываем его в текущее время формат даты с именем расширения.

(YYYY-MM-ДДTчч: мм: 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; 

Дополнительная информация:

Если имя файла существует, Я хочу переименовать этот существующий файл в формат даты даты внутри папки, а затем загрузить/переименовать файл по определенному имени update Как вы знаете, мы можем проверить, существует ли файл, а затем эхо-сообщение, но как переименовать существующий файл в соответствии с вопросом номер 2 выше.

+1

'file_exists' - проверяет, существует ли файл –

+0

Еще одна вещь: не создавайте собственные типы сообщений типа json. Вместо этого используйте '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

Смежные вопросы