2014-09-25 4 views
2

Я использую структуру Yii, и у меня есть веб-сайт, позволяющий администратору загружать текстовый файл или файл pdf. Теперь я хочу разрешить пользователю щелкнуть ссылку и начать загрузку этого файла. это достигается в рамках Yii?Загрузка файла с Yii

Я храню файлы в Yiiapplication/uploads/downloads/test.txt.

Я пробовал следующий код, который я нашел в Интернете, но он не работает.

Yii::app()->request->sendFile(Yii::getPathOfAlias('webroot').'/uploads/downloads/23602414.txt','click me'); 

мне нужно улучшить на все это, загрузив его ли это текстовый файл с «<a href=», который не является оригинальным содержанием файла.

ответ

0

Скачать Extension здесь http://www.yiiframework.com/extension/cfile/

// Set Your file path 
$myfile = Yii::app()->file->set(Yii::app()->basePath.'/../uploads/documents/'.$_GET['file'], true); 


if (Yii::app()->file->set(Yii::app()->basePath.'/../uploads/documents/'.$_GET['file'])->exists){ 

      $myfile->download(); 

} else { 

      echo Translate::__('File Not Found'); 
    } 
+0

Я не хочу использовать какие-либо расширения, есть ли другой способ? – Steve

3

, если вы предпочитаете не использовать расширение, почему бы не попытаться создать простой способ, чтобы заставить скачать.

public function downloadFile($fullpath){ 
    if(!empty($fullpath)){ 
     header("Content-type:application/pdf"); //for pdf file 
     //header('Content-Type:text/plain; charset=ISO-8859-15'); 
     //if you want to read text file using text/plain header 
     header('Content-Disposition: attachment; filename="'.basename($fullpath).'"'); 
     header('Content-Length: ' . filesize($fullpath)); 
     readfile($fullpath); 
     Yii::app()->end(); 
    } 
} 

public function actionDownload(){ 
    $path = Yii::getPathOfAlias('webroot')."/uploads/downloads/23602414.pdf"; 
    $this->downloadFile($path); 
} 

и сделать ссылку на скачивание этих файлового

<?php echo CHtml::link('Download file',array('youController/download')); ?> 

вы можете улучшить этот код, сделав тип контента более гибкого по проверяемому типу файл, прежде чем решить, заголовок type.could будет PDF | TXT | JPEG | и т.д. ,

+0

Это то, что я на самом деле сделал, но немного другое. Спасибо, добрый сэр. – Steve

+0

Работайте для меня тоже. Благодарю. – Mehdi

+0

Это работало для меня, но внезапно сегодня загрузка файла не работает. Нажатие кнопки загрузки перенаправляет меня на страницу входа каждый день. Любая идея, что происходит? Я ничего не менял в своем производственном коде. –

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