2017-02-14 6 views
1

Преобразование имени файла перед загрузкой силы.Изменить имя файла fileigname

Я пытаюсь быть в состоянии преобразовать имя файла из имени сохраненного файла с именем Orignal файла перед загрузкой

Таким образом, когда пользователь нажимает на файл для загрузки вместо того чтобы показывать

post_1486965530_jeJNHKWXPMrwRpGBYxczIfTbaqhLnDVO.php 

Как и в изображении ниже

Это будет просто переименовать загруженный файл что-то вроде

config.php 

enter image description here

Вопрос, как только изменить загруженный имя файла, когда нажмите на изображение.

public function downloads($id) { 
    $this->db->where('attachment_id', $id); 
    $query = $this->db->get('attachments'); 

    if ($query->num_rows() == 0) { 
     return false; 
    } 

    $path = ''; 
    $file = ''; 

    foreach ($query->result_array() as $result) { 

     $path .= FCPATH . 'uploads/'; 

     // This gives the stored file name 
     // This is folder 201702 
     // Looks like 201702/post_1486965530_jeJNHKWXPMrwRpGBYxczIfTbaqhLnDVO.php 

     $stored_file_name .= $result['attachment_name']; 

     // Out puts just example "config.php" 
     $original .= $result['file_name']; 

    } 

    force_download($path . $stored_file_name, NULL); 
} 

ответ

2

Как об этом (имхо вашем цикле Еогеаспа не имеет никакого смысла)

public function downloads($id) { 
    $this->db->where('attachment_id', $id); 
    $query = $this->db->get('attachments'); 

    if ($query->num_rows() == 0) { 
     return false; 
    } 

    $path = ''; 
    $file = ''; 

    foreach ($query->result_array() as $result) { 

     $path .= FCPATH . 'uploads/'; 

     // This gives the stored file name 
     // This is folder 201702 
     // Looks like 201702/post_1486965530_jeJNHKWXPMrwRpGBYxczIfTbaqhLnDVO.php 

     $stored_file_name .= $result['attachment_name']; 

     // Out puts just example "config.php" 
     $original .= $result['file_name']; 

    } 

    force_download("your_filename.txt",file_get_contents($path . $stored_file_name)); 
} 
+0

Это прекрасно работает, но то, что вы имеете в виду, не имеет смысла, если есть лучший способ добавить это. – user4419336

+0

вопрос, который приходит на ум, что происходит, если у вас есть несколько результатов здесь? В этом случае эта функция больше не будет работать – sintakonte

+0

Как насчет использования row_array() как '$ attachment = $ query-> row_array(); $ path = FCPATH. 'Добавления /'; $ original = $ attachment ['file_name']; $ stored_file_name = $ attachment ['attachment_name']; 'похоже, отлично работает, когда я нажимаю на каждый файл – user4419336

0

Симпл, как это!

force_download(
    $filenameWithFileExtension, 
    file_get_contents($fileToDownload), 
    mime_content_type($fileToDownload) 
); 
Смежные вопросы