ZEND Upload - Problem mit dyn. Pfad

MsvP@habdichliebhasi

Erfahrenes Mitglied
Ich habe ein merkwürdiges Problem, wenn ich für ein Upload Script in Zend, den Pfad für den Upload dynamisch erzeuge aus Arrays, die aus einer DB kommen, dann ignoriert die Upload funktion diesen:

PHP:
$articleDirectory = '../data/'$article[0]['iduser'].'/'.$article[0]['idcategory'].'/'.$article[0]['id'].'/';


Er speichert die Datei immer nur in ../data/ alles andere ingoriert er.
Wenn ich den Pfad von Hand eingebe, klappt es.
Sprich, wenn ich eingebe:

PHP:
$articleDirectory = '../data/1/MS/3/';

Vielen Dank für eure Hilfe,

Lg
Micha
 
Hi,

Code:
'../data/'.$article[0]['iduser']
Da fehlt der Punkt zur Zeichenkettenverknüpfung.
Oder ist das ein Copy&Paste Fehler? :)
 
Hi,

falls der Punkt nicht fehlt (das müsste dann ja einen Parse Error geben), musst Du halt mal die Variablen ausgeben lassen, um zu prüfen, ob dort auch drin steht, was Du erwartest.

LG
 
Das habe ich schon probiert. Habe die gebaute var per echo ausgegeben. Die Ausgabe schaut absolut richtig aus. Ich verstehe es nicht. Selbst wenn ich damit prüfe ob es das Verzeichnis gibt klappt es. Nur beim Upload selbst ignoriert er alles nach ../data/
 
Hat da keiner eine Idee?
Die Punktierung ist richtig, war ein copy Fehler. Und der Inhalt des Arrays stimmt mit dem überein, was ich haben will.

Gibt es irgendeinen Fall, wodurch Daten aus der DB nicht kompatibel sind, als Upload Pfad?
 
Sind die Daten absolut identisch mit dem Pfad in der Datenbank? Also auch Groß-/Kleinschreibung?
 
Also der Pfad heißt z.B. ../data/13/MS/2/

Wenn ich den von Hand in die Variable setze geht das auch.

Per echo geben mir die Arrays auch ganz normal aus (also auch richtig von der Klein-/Großschreibung):
13 MS und 2 .

Das heißt wenn ich die so zusammen setze
"...data/".ARRAY."/".ARRAY."/".ARRAY."/"
müsste das doch klappen?

Kann da irgendwas beim auslesen aus der DB schiefgehen?
 
Hier nochmal die genauen Scripte:

PHP:
public function getProducts($id) {
        $sql = "SELECT 
                    * 
                FROM
                    products
                WHERE 
                    idtype = '".$id."'
                ";
        $result = $this->db->fetchAll($sql);
        
        return $result;
    }

PHP:
$this->model = new ProductModel();
$products = $this->model->getProducts($idp);

$productDirectory = '../data/'.$products[0]['tmpIdProduct'].'/'.$products[0]['tmpIdCategory'].'/';
 
Zuletzt bearbeitet:
Probiers mal so:
PHP:
$articleDirectory = "../data/".$article[0]['iduser']."/".$article[0]['idcategory']."/".$article[0]['id']."/";

Also anstatt der einfachen Anführungszeichen die doppelten.
 
Könntest du bitte einmal die Uploadlogik zeigen?
Eventuell hat sich da ja ein kleiner Fehler eingeschlichen.

Die einfachen Anführungszeichen sind in diesem Fall zu bevorzugen, da ja definitiv kein Inhalt da ist, der geparsed werden muss.
 
Zurück