2016-04-26 7 views
0

私は初心者です。私はユーザーにメッセージを送信し、1 MBのファイルをアップロードする必要があるプロジェクトがあります。すべてのデータベースベースのメールなし機能はユーザーです。 私はメッセージをユーザーに送信し、ユーザーIDに応じてメッセージが表示されています。すべて正常に動作しますが、添付ファイルにはExcel、画像、pdfなどのファイルをアップロードできます。これをメッセージとともに表示する方法。助けてください。あなただけのYii I 強くを初めてしている場合、私はリンク可能と画像をクリックして/ PDF /エクセル上でのファイル名たくファイルのアップロード?

自分の行動

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

     ), 
          ), 
)); ?> 

は、すべての

答えて

0

ファーストを開く必要があります一緒に行くお勧めしますYii1.xの代わりにYii2。あなたが投稿したそのコードはYii 1.xであり、現在、そのライフサポートとYii2ははるかにエレガントです。

しかし、戻ってビジネスに:ボックスのうち

だけでディスプレイに画像やExcelのファイルのためのYii特定の方法がありません。すべてのブラウザではないにしても、PDFの組み込みサポートがあるため、ほとんどのブラウザでうまく表示されます。

しかし、あなたは、ユーザーがリンクをクリックすると、文書が開いていることができるオールインワンのソリューションをしたい場合は、おそらくいくつかのことを試してみる必要があります。

  1. は、ExcelドキュメントをアップロードGoogleドキュメントアカウントに追加し、ページに埋め込みます:https://support.google.com/docs/answer/143345?hl=en&rd=1

  2. 画像の場合、タグを作成するだけで、表示されます。 PDFファイルについては

  3. あなたはこのような何かを試みることができる:

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

関連する問題