2016-04-26 2 views
0

Я новичок в yii. У меня есть проект, в котором я должен отправлять сообщения пользователям и загружать им файл размером 1 МБ. В его базе данных нет функции Mail, это пользователь. Я отправил сообщение пользователям и в соответствии с идентификатором пользователя, которое им показано. Все работает нормально, но в приложении я могу загрузить любой файл, например, excel, image и pdf. Как показать это с помощью сообщения. Пожалуйста помоги.Загрузка файла в yii?

мое действие

public function actionCreateMessage() 
{ 
    $model=new Message; 

    // Uncomment the following line if AJAX validation is needed 
    // $this->performAjaxValidation($model); 

    if(isset($_POST['File'])) 
    { 
     $file=$model->filename=CUploadedFile::getInstance($model,'filename'); 
     if(empty($file)){ 
      $model->attributes=$_POST['Message']; 
      $model->save(); 
     } 
     else{ 
     $model->attributes=$_POST['Message']; 
     $model->filename = CUploadedFile::getInstance($model, 'filename'); 
     if($model->save()){ 
      $simpan->saveAs(Yii::app()->basePath . 
       '/../files/' . $model->filename.''); 
      $this->redirect(array('view','id'=>$model->message_id)); 
     } 
     } 
    } 

    $this->render('create',array(
     'model'=>$model, 
    )); 
} 


viewmessage 

<?php $this->widget('bootstrap.widgets.TbDetailView',array(
     'data'=>$model, 
     'attributes'=>array(
         'message_id', 
         'message_subject', 
         'message_body', 
         array( 
      'label'=>'attachment', 
      'type'=>'raw', 
      'value'=>CHtml::link(CHtml::encode($model->filename); 

     ), 
          ), 
)); ?> 

я хочу имя файла связываемых и нажать на изображение/PDF/Excel должен открывает

ответ

0

Прежде всего, если вы только знакомитесь с Yii я сильно рекомендую идти с Yii2 вместо Yii1.x. Этот код, который вы выложили, - Yii 1.x, и сейчас его поддержка по жизни плюс Yii2 намного более элегантна.

Но вернемся к делу:

Из коробки есть не Yii конкретный способ изображения и Excel файлы просто отобразить. Некоторые, если не все браузеры, имеют встроенную поддержку PDF-файлов, поэтому они будут отображаться в большинстве браузеров.

Но если вы хотите все-в-одном, который позволяет пользователю нажать на ссылку и иметь документ, открыть вам, вероятно, придется попробовать несколько вещей:

  1. Загрузите документ Excel в Google Docs и вставьте его на свою страницу, следуя следующим указаниям: https://support.google.com/docs/answer/143345?hl=en&rd=1

  2. Для изображений вы можете просто создать тег и отобразить его.

  3. Для PDF-файлов, вы можете попробовать что-то вроде этого:

<div> <object data="test.pdf" type="application/pdf" width="300" height="200"> alt : <a href="test.pdf">test.pdf</a> </object> </div>