2016-04-26 29 views
0

Ich bin Anfänger zu yii. Ich habe ein Projekt, in dem ich Nachrichten an Benutzer senden und eine Datei von 1 MB an sie hochladen muss. Seine Datenbank-basierte keine Mail-Funktion ist Benutzer. Ich habe eine Nachricht an Benutzer gesendet und entsprechend der Benutzer-ID wird ihnen diese Nachricht angezeigt. Alles funktioniert gut, aber im Anhang kann ich jede Datei wie Excel, Bild und PDF hochladen. Wie man dies mit der Nachricht zeigt. Bitte helfen Sie.Datei hochladen in yii?

meine Aktion

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

     ), 
          ), 
)); ?> 

i Dateiname möchten verknüpfbar und auf das Bild klicken/pdf/Excel sollte öffnet

Antwort

0

Vor allem, wenn Sie gerade mit Yü Sie beginnen mit I stark empfehlen gehen Yii2 statt Yii1.x. Dieser Code, den du gepostet hast, ist Yii 1.x und genau jetzt ist es auf Life-Support plus Yii2 viel eleganter.

Aber zurück zum Geschäft:

Out of the box gibt es keine Yü spezifische Art und Weise für Bilddateien und Excel nur angezeigt werden soll. Einige, wenn nicht alle Browser haben integrierte Unterstützung für PDFs, so dass diese in den meisten Browsern angezeigt werden.

Aber wenn Sie ein all-in-one-Lösung, die der Benutzer auf einen Link klicken können und haben das Dokument öffnen, werden Sie wahrscheinlich ein paar Dinge versuchen müssen:

  1. Laden Sie die Excel-doc zu einem Google Text & Tabellen-Konto und betten Sie es in Ihre Seite ein, indem Sie folgende Anweisungen befolgen: https://support.google.com/docs/answer/143345?hl=en&rd=1

  2. Für Bilder können Sie einfach ein Tag erstellen und es wird angezeigt.

  3. Für PDFs können Sie so etwas wie dies versuchen:

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