2011-01-13 4 views
0

Verwendung des folgenden Codes in meiner Ansicht Datei (add.ctp) zu erstellen:

<div class="resources form"> 
<?php echo $this->Form->create('Resource');?> 
    <fieldset> 
     <legend><?php __('Add Resource'); ?></legend> 
    <?php 
     echo $this->Form->input('title'); 
     echo $this->Form->input('file', array('type' => 'file')); 
     ... 
    ?> 
</fieldset> 
<?php echo $this->Form->end(__('Submit', true));?> 
</div> 
... 

... und den folgenden Code in die Steuerung ...

function add() { 
    if (!empty($this->data)) { 
     $this->Resource->create(); 
     if ($this->uploadFile() && $this->Resource->save($this->data)) { 
      $this->Session->setFlash(__('The resource has been saved', true)); 
      $this->redirect(array('action' => 'index')); 
     } else { 
      $this->Session->setFlash(__('The resource could not be saved. Please, try again.', true)); 
     } 
    } 
    .... 
} 

... mit der folgenden Funktion, den Prozess zu testen:

function uploadFile() { 
     $file=$this->data['Resource']['file']; 
     $this->data['Resource']['filename'] = 'failing with name:'.$file['name'].'/ file_mime: '.$file['filemime']; 
    return true; 
} 

die Datenbank ist Alwa Es wird mit dem ersten Zeichen des ursprünglichen Dateinamens der Datei gefüllt, unabhängig davon, welche Datei ich hochzuladen versuche oder auf welche Elemente des $ file-Arrays ich zugreifen möchte. Zum Beispiel mit test.gif ich:

„mit dem Namen andernfalls: t/file_mime: t“

Bemerkenswert ist dieser Code das Ergebnis mir die Aufgaben reduziert die Funktion war die auszuführen unten geringstes Minimum, um das Problem zu lokalisieren. Daher die Seltsamkeit des Ergebnisses.

Dateiname/varchar (200)/utf8_general_ci/NOT NULL

Ich bin neu in CakePHP und bin zu einem Totalverlust, was zu suchen, dies zu machen: Die Datenbankspalte für den Dateinamen ist wie folgt aufgebaut Arbeit, reiß meine Haare aus. Jede Hilfe oder Ausrichtung in die richtige Richtung würde dankbar angenommen werden.

Antwort

0

Ich schaffte es, einen der Mitwirkenden zu CakePHP zu bekommen, der sehr, sehr freundlicherweise seine Hilfe anbot und das Problem für mich löste, ich bin sehr dankbar, aber werde ihn anonym halten!

Auf einem Blick kann ich sehen, dass Ihr add.ctp einen Array in der Formularerstellung benötigt:

echo $this->Form->create('Resource', array('type' => 'file')); 

Dies teilt die CakePHP Form Helfer einen mehrteilige Form Typen, bereit für das Senden von Dateien zu erstellen .

Verwandte Themen