Dateikopie von a nach b auf gleichem Server klappt nicht

julia29

Erfahrenes Mitglied
Das Kopieren einer Datei von a nach b auf dem gleichen Server (LINUX) klappt nicht, zumindest kommt im Verzeichnis /uploads/ nichts an. Eine Fehlermeldung wird nicht ausgegeben.

PHP:
<?php 
$from = ("http://www.domain.de/grau.jpg");
$to = ("http://www.domain.de/uploads/");

function move_pic($from, $to){ 
   //file_exists() - prüfen ob Datei vorhanden ist 
   if(!file_exists($to)){ 
      //copy() - hier die Datei kopieren 
      if (!copy($from, $to)) { 
         print ("failed to copy $file...<br>\n"); 
      } 
      else{ 
         //unlink() - hier die Quelldatei löschen 
         unlink($from); 
      } 
   } 
} 

?>

Register Globals Emulation: OFF
Register Globals: OFF
Safe Mode: OFF

root/uploads/
root/4711.pdf
root/script.php

/upload/ cmod 777 Inhaber (10082) / (10082)
/4711.pdf cmod 777 Inhaber (10082) / (10082)


was kann ich tun?
 
Die copy()-Funktion arbeitet auf der Dateisystem-Ebene. Du gibst jedoch eine URL an.
Probier mal Folgendes:
PHP:
$from = "/grau.jpg";
$to = "/uploads/grau.jpg";
Wenn du die Datei nur verschieben willst, kannst du dies übrigens mit der rename()-Funktion machen, indem du die Datei „/grau.jpg“ einfach zu „/uploads/grau.jpg“ umgebennst.
 
Die copy()-Funktion arbeitet auf der Dateisystem-Ebene. Du gibst jedoch eine URL an.
Probier mal Folgendes:
PHP:
$from = "/grau.jpg";
$to = "/uploads/grau.jpg";
Wenn du die Datei nur verschieben willst, kannst du dies übrigens mit der rename()-Funktion machen, indem du die Datei „/grau.jpg“ einfach zu „/uploads/grau.jpg“ umgebennst.

habe ich gemacht, leider ohne irgendein Ergebnis.

Auch dies (im gleichen Verzeichnis) hat bisher keinerlei Auswirkung gezeigt:
PHP:
$from = "/grau.jpg";
$to = "/grau2.jpg";

ebenso als rename()
PHP:
<?php 
$from = "/grau.jpg";
$to = "/uploads/grau.jpg";

function move_pic($from, $to){ 
   //file_exists() - Existenz der Datei prüfen 
   if(!file_exists($to)){ 
      //!copy() - Datei kopieren 
      if (rename($from, $to)) { 
         print ("failed to copy $file...<br>\n"); 
      } 
      else{ 
         //unlink() - Datei löschen 
         //unlink($from); 
      } 
   } 
} 

?>

Was könnte es noch sein?
 
Ach, was schreibe ich da. Es müssen ja entweder relative oder von der Dateisystemwurzel absolute Pfade sein. Also entweder:
PHP:
$from = "./grau.jpg";
$to = "./uploads/grau.jpg";
Oder:
PHP:
$from = $_SERVER['DOCUMENT_ROOT']."/grau.jpg";
$to = $_SERVER['DOCUMENT_ROOT']."/uploads/grau.jpg";
 
Hi kuddeldaddeldu,

habe ich mal gemacht, aber eine Fehleranzeige erfolgt nicht.

PHP:
<?php 
ini_set("display_errors", 1);
error_reporting(E_ALL);
$from = "/grau.jpg";
$to = "/uploads/grau.jpg";

function move_pic($from, $to){ 
....

was kann ich nun machen?
 
Ach, was schreibe ich da. Es müssen ja entweder relative oder von der Dateisystemwurzel absolute Pfade sein. Also entweder:
PHP:
$from = "./grau.jpg";
$to = "./uploads/grau.jpg";
Oder:
PHP:
$from = $_SERVER['DOCUMENT_ROOT']."/grau.jpg";
$to = $_SERVER['DOCUMENT_ROOT']."/uploads/grau.jpg";


Hallo Gumbo,

habe beides ausprobiert, aber auch das will nicht zum Erfolg führen. Weder Fehlermeldung noch erfolgreiche Kopie, nichts greift.
 
Hi,

hattest Du die Funktion ernsthaft gar nicht aufgerufen? ;)
Wie hast Du das denn jetzt eingebaut? In deepthroats Zeile sehe ich keinen Fehler.

LG
 
Zurück