2016-08-21 6 views
0

// Этот код помогает мне отправить изображение в папку с изображениями. Однако файл сохраняет свое первоначальное имя из-за базового имени функции. Как добавить определенное имя в файл? Как logo.png?Как указать загруженное имя файла?

<?php 
     if(isset($_POST['submit'])) { 
     //PROCESS FORM DATA 
     $tmp_file = $_FILES['file_upload']['tmp_name']; 
     $target_file = basename($_FILES['file_upload']['name']); 
     $upload_dir = "images"; 

     //Move file 
     //False als die niet correct is 
     if (move_uploaded_file($tmp_file, $upload_dir."/".$target_file)) { 
      $message = "File upload succesfull"; 
     } else { 
      $error = $_FILES['file_upload']['error']; 
      $message = $upload_errors[$error]; 
     } 
     } 
?> 

Html форма:

<form action="upload_logo.php" enctype="multipart/form-data" method="POST"> 
    Select .png logo to upload: 
    <input type="hidden" name="MAX_FILE_SIZE" value="1000000" /> 
    <input type="file" name="file_upload" /> 

    <input type="submit" name="submit" value="Upload" /> 
    </form> 
+1

'move_uploaded_file ($ tmpname, $ NEWNAME)'? – RamRaider

ответ

0

Ваш код выглядит он довольно почти там - просто генерировать имя, которое вы хотите, возьмите оригинальное расширение файла и добавить, чтобы сделать новое имя

<?php 
     if(isset($_POST['submit'])) { 

     $tmp_file = $_FILES['file_upload']['tmp_name']; 

     $target_file = 'logo.' . pathinfo($_FILES['file_upload']['name'], PATHINFO_EXTENSION); 

     $upload_dir = "images"; 


     if (move_uploaded_file($tmp_file, $upload_dir."/".$target_file)) { 
      $message = "File upload succesfull"; 
     } else { 
      $error = $_FILES['file_upload']['error']; 
      $message = $upload_errors[$error]; 
     } 
     } 
?> 
+0

Спасибо: D это сработало! –

0

Просто замените эту строку:

if (move_uploaded_file($tmp_file, $upload_dir."/".$target_file)) { 

с этим:

if (move_uploaded_file($tmp_file, $new_file_name)) { 
+0

Спасибо за ответ! –

+0

@ChrisM. если это правильный ответ, пожалуйста, воздержитесь от него и отметьте его как ответ. – levu

+0

Спасибо, я попробовал, но не мог понять, он дал некоторые другие ошибки, поэтому я попробовал один из RamRaider, и это сработало для меня. –

0

Я использую этот код.

$target_file = "image_" . date('Y-m-d-H-i-s') . '_' . uniqid() . '.jpg';//Here name is generated dynamically 
$upload = move_uploaded_file($tmp_file, "folderName/" . $target_file); 

Он всегда генерирует уникальное имя файла динамически. Он имеет date и unique id внутри него. Они меняются каждый раз. Здесь вам не нужно менять имя файла вручную.

+0

Спасибо за ответ! –

+0

Надеюсь, это поможет вам. Cheers –

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