2014-11-04 6 views

ответ

7

require('UploadHandler.php'); 
 
class CustomUploadHandler extends UploadHandler { 
 
    protected function trim_file_name($file_path, $name, $size, $type, $error, $index, $content_range) { 
 
      $name = 'First_' . microtime(true); 
 
      $name = str_replace('.', '', $name); 
 
      return $name; 
 
     } 
 
} 
 

 
$upload_handler = new CustomUploadHandler();

В пользовательском файле index.php инициализировать эту функцию UploadHandler.php

+0

хорошее решение, не хак. Благодаря! в вашем решении была опечатка, но я отредактирую ее, чтобы исправить ее. –

-1

Это решение было отправлено '' lethal.industry пользователя here. Вы должны вставить этот код внутри класса UploadHandler в UploadHandler.php файл

//custom function which generates a unique filename based on current time 
    protected function generate_unique_filename($filename = "") 
     { 

      $extension = ""; 
      if ($filename != "") 
      { 
       $extension = pathinfo($filename , PATHINFO_EXTENSION); 

       if ($extension != "") 
       { 
        $extension = "." . $extension; 
       } 
      } 

      return md5(date('Y-m-d H:i:s:u')) . $extension; 
     } 

Вы можете изменить имя файла, как вы хотите изменить последнюю строку 'возвращение ...

Тогда вы будете искать «handle_file_upload 'функционировать в UploadHandler.php и заменить эту строку

$file->name = $this->get_file_name($uploaded_file, $name, $size, $type, $error, $index, $content_range); 

для этой линии

$file->name = $this->generate_unique_filename($name); 
+1

Этот метод не работает с активированным несколькими файлами, он отлично работает только при загрузке одного файла. Проверьте мой ответ ниже, чтобы найти простой способ достичь этого. – Saymon

3

Это может быть достигнуто только с заменой функции trim_file_name() следующим образом в файле UploadHandler.php.

protected function trim_file_name(VARIABLES) { 
    $name = uniqid(); 
    return $name; 
} 

и все

+0

Где имя пользователя trim_file_name? Мне нужно отправить переменную 'name', но не могу найти способ ее отправки. – cbarg

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