2016-06-21 12 views
-1

Ich muss Bild einen Pfad zu einem anderen Pfad kopieren.PHP-Kopierfunktion funktioniert nicht in Joomla

Hier ist mein Code:

$sourspath = JUri::root().'media/truematrimony/profiles/pending/'.$totbookmar.''; 

$descpath = JUri::root().'media/truematrimony/profiles/kmprofile/'.$totbookmar.''; 

$status = copy($sourspath, $descpath) or die("Could not copy file contents"); 

+2

Viel Glück. Wenn Sie ein Problem haben ('var_dump ($ sourpath, $ descpath)' zeigt falsche Pfade an oder 'copy()' gibt 'false' zurück oder zeigt eine Warnung an) zweifle nicht daran, zurück zu kommen. –

+0

string (88) "http://temsqpp.com/media/matts/profiles/pending/watermark-K34691_pho_1.png" Zeichenfolge (90) "http://temsqpp.com/media/matsts/profiles/profils/ watermark-K34691_pho_1.png "Dateiinhalte konnten nicht kopiert werden –

+0

Bitte beachten Sie, dass wir Sie nicht lesen können, schauen Sie sich Ihren Monitor über die Schulter oder lesen Sie große Kommentare in den Kommentaren. Wenn das Skript "Dateiinhalt nicht kopieren" ausgibt, bedeutet dies, dass "copy()' '' false "zurückgegeben hat. Der wahrscheinlichste Grund ist, dass Dateipfade falsch sind. Die Verwendung relativer Pfade ist immer riskant. –

Antwort

0

Meine fundierte Vermutung (I weiß nichts über Joomla) ist, dass JUri ist eine Hilfsklasse zum Bearbeiten von URLs. Wenn das Ihre Absicht ist, verwenden Sie es falsch, weil Ihren Pfaden das Präfix http:// fehlt. Aber ich glaube nicht, dass Sie wirklich Dateien über das Netzwerk kopieren wollen (und der HTTP-Wrapper ist ohnehin schreibgeschützt). Sie müssen Dateisystem Pfade, keine URLs verwenden. Joomla scheint mehrere pfadbezogene constants zu haben, so dass Sie einen absoluten Pfad erstellen können.

0

versuchen, das verwenden JFile native Joomla Class:

$sourspath = JUri::root().'media/truematrimony/profiles/pending/'.$totbookmar.''; 

$descpath = JUri::root().'media/truematrimony/profiles/kmprofile/'.$totbookmar.''; 

$status = JFile::copy($sourspath, $descpath) or die("Could not copy file contents"); 

Edit:

Try Ordnerberechtigungen festlegen, bevor Kopierfunktion schreiben Anruf:

chmod($descpath, 0644); 

Und wenn es immer noch nicht funktioniert, überprüfen Sie die temporären Ordner richtig eingestellt ist in Ihrer Globalen Konfiguration (und es hat auch die richtigen Berechtigungen zu schreiben, in)

+0

Es funktioniert nicht .. –

+0

Dann kann das Problem von '$ Descpath' Ordner Berechtigungen kommen. –

+0

Ordner Permission 0755 für beide Ordner –

Verwandte Themen