API: Dateien verarbeiten

Dateien werden in der PAI anders behandelt als die normalen Felder.

Der API-Aufruf ist identisch wie wenn Sie neue Beiträge erstellen oder bestehende Beiträge bearbeiten möchten.

  1. <?php
  2. api_edit(
  3.   $data,      // Inhalt
  4.   $file,      // Datei
  5.   'new',      // Aktion
  6.   $container, // Container ID
  7.   '',         // Artikel ID
  8.   $publish,   // Publikationseinstellung
  9.               //   0 = nicht publizieren;
  10.               //   1 = publizieren
  11.   $username,  // API-Username
  12.   $password,  // API-Passwort
  13.   false       // Fehler ausgeben (true|false)
  14. );
  15. ?>

Die Datei muss sich im Array $file befinden. Die normalen Felder befinden sich wie gewohnt im Array $data.

Der $file Array hat eine andere Syntax als der $data Array.

Beispiel "Datei-Upload":
Wenn über ein Formular für das Feld "upload" die Daten hochgeladen und verarbeitet werden sollen, dann sieht das Ganze so aus.

  1. <?php
  2. $file['upload'] = $_FILES['feldname'];
  3. ?>

Beispiel "Externe Datei":
Im Folgenden ist ein Beispiel enthalten wie die $file Variable aussehen sein muss, um das Feld "upload" zu befüllen. Die Werte sind optional.

  1. <?php
  2. $file['name']['new_1']['upload']['file'] = 'Grafik.jpg';
  3. $file['type']['new_1']['upload']['file'] = 'image/jpg';
  4. $file['tmp_name']['new_1']['upload']['file'] = 'http://www.server.de/Grafik.jpg';
  5. $file['error']['new_1']['upload']['file'] = 0;
  6. $file['size']['new_1']['upload']['file'] = 1024;
  7. ?>

Wenn die Variablen manuell gesetzt werden, müssen name, type, tmp_name, error und size befüllt werden.

  1. <?php
  2. $file['name'] ...
  3. $file['type'] ...
  4. $file['tmp_name']...
  5. $file['error'] ...
  6. $file['size'] ...
  7. ?>

name
Der ursprüngliche Dateiname.

type
Der Mime-Type der Datei, falls der Browser diese Information zur Verfügung gestellt hat. Ein Beispiel wäre "image/gif". Dieser Mime-Type wird jedoch nicht von PHP geprüft und kann somit falsch sein.

size
Die Größe der hochgeladenen Datei in Bytes.

tmp_name
Der temporäre Dateiname, unter dem die hochgeladene Datei auf dem Server gespeichert wurde.

error
Der Fehlercode des Uploads. Dieses Element wurde in PHP 4.2.0 hinzugefügt.

Dem jeweiligen Namen folgt ['new_1'] (mit entsprechender Zahl für jede Datei) wenn ein neuer Beitrag erzeugt werden soll. Wenn ein bestehender Beitrag bearbeitet werden soll, muss dessen ID eingegeben werden.

  1. <?php
  2. $file['name']['new_1'] ...
  3. $file['type']['new_1'] ...
  4. $file['tmp_name']['new_1']...
  5. $file['error']['new_1'] ...
  6. $file['size']['new_1'] ...
  7. ?>

Es folgt der Name des Felder in der Beitragsart in CUBE.

  1. <?php
  2. $file['name']['new_1']['feldname'] ...
  3. $file['type']['new_1']['feldname'] ...
  4. $file['tmp_name']['new_1']['feldname'] ...
  5. $file['error']['new_1']['feldname'] ...
  6. $file['size']['new_1']['feldname'] ...
  7. ?>

Abschließend muss immer noch ein ['file'] stehen.

  1. <?php
  2. $file['name']['new_1']['feldname']['file'] ...
  3. $file['type']['new_1']['feldname']['file'] ...
  4. $file['tmp_name']['new_1']['feldname']['file'] ...
  5. $file['error']['new_1']['feldname']['file'] ...
  6. $file['size']['new_1']['feldname']['file'] ...
  7. ?>

Sag' deine Meinung! Nichts gegen kurze Einschätzungen. Floskeln wie "sieht aus, als wärs vom Praktikanten" oder "Griff ins Klo" sollten allerdings im Sinne einer sachlich geführten Diskussion vermieden werden.




Kommentar:



Funktionsreferenz Neueste Blog-Artikel


Blog-Archiv Twitter

Folgt @cubecms auf Twitter und bleibt immer auf dem Laufenden was CUBE angeht. Hashtag: #cubecms