so habe ich versucht, die rename()
Funktion zu verwenden, wie beschrieben und ich hielt den Fehler immer wieder, dass war es no such file or directory
. Ich habe den Code in eine if else-Anweisung eingefügt, um sicherzustellen, dass ich die Verzeichnisse wirklich erstellt habe. Es sah wie folgt aus:
$tempDir = '/home/site/images/tmp/';
$permanentDir = '/home/site/images/' . $claimid; // this was stored above
mkdir($permanentDir,0775);
if(is_dir($permanentDir)){
echo $permanentDir . ' is a directory';
if(is_dir($tempDir)){
echo $tempDir . ' is a directory';
}else{
echo $tempDir . ' is not a directory';
}
}else{
echo $permanentDir . ' is not a directory';
}
rename($tempDir . "*", $permanentDir);
Also, wenn ich den Code wieder lief, es auszuspucken, dass beide Wege Verzeichnisse waren. Ich war ratlos. Ich sprach mit einem Kollegen und er schlug vor: "Warum nicht einfach das temporäre Verzeichnis in das neue Verzeichnis umbenennen, da Sie sowieso alle Dateien verschieben möchten?"
Stellt sich heraus, das ist, was ich getan habe. Ich habe es aufgegeben, den Platzhalter mit der rename()
Funktion zu verwenden und stattdessen einfach das rename()
verwenden, um das temporäre Verzeichnis in das permanente umzubenennen.
so sieht es so aus.
$tempDir = '/home/site/images/tmp/';
$permanentDir = '/home/site/images/' . $claimid; // this was stored above
mkdir($permanentDir,0775);
rename($tempDir, $permanentDir);
Das funktionierte wunderbar für meine Zwecke, da ich die alte tmp-Verzeichnis nicht brauchen, dort zu bleiben, nachdem die Dateien und „bewegt“ hochgeladen.
Hoffe, das hilft. Wenn jemand weiß, warum der Platzhalter in der rename()
Funktion nicht funktioniert und warum ich den oben genannten Fehler erhalten habe, lassen Sie es mich bitte wissen.
Haben Sie das ursprüngliche Verzeichnis halten müssen? – Sampson
wäre es gut, den ursprünglichen Ordner zu behalten ... nicht dieses Mal, aber vielleicht ein anderes Mal ich muss es behalten..ich kann vermuten, was Ihr Ansatz ist =) – ajsie
aber ich bemerkte, dass ive Dateien im Zielordner, dass ich behalten wollen. und dann funktioniert Ihr Ansatz nicht, weil es nicht erlaubt, den Ordner in einen Zielordner zu verschieben, der bereits Dateien enthält – ajsie