2014-11-04 16 views

Trả lời

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();

Trong tập tin tùy chỉnh của bạn index.php khởi tạo chức năng này của UploadHandler.php

+0

tốt giải pháp phi hack. Cảm ơn! có lỗi đánh máy trong giải pháp của bạn, tôi sẽ chỉnh sửa lỗi đó để khắc phục. –

-1

Giải pháp này đã được đăng bởi 'lethal.industry' dùng here. Bạn phải dán mã này bên trong lớp UploadHandler trong UploadHandler.php nộp

//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; 
     } 

Bạn có thể thay đổi tên tập tin như bạn muốn thay đổi dòng cuối cùng 'trở lại ...'

Sau đó, bạn tìm kiếm 'handle_file_upload 'chức năng trong UploadHandler.php và thay thế dòng

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

này cho dòng này

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

Phương pháp này không hoạt động với nhiều tệp được kích hoạt, nó chỉ hoạt động tốt khi tải lên một tệp. Kiểm tra phản ứng của tôi dưới đây để tìm ra một cách đơn giản để đạt được điều này. – Saymon

3

Điều này có thể đạt được chỉ bằng cách thay đổi hàm trim_file_name() thành tệp sau trong tệp UploadHandler.php.

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

và đó là tất cả

+0

Trim_file_name được gọi từ đâu? Tôi cần phải gửi biến 'tên' nhưng không thể tìm thấy một cách để gửi nó. – cbarg

Các vấn đề liên quan