PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Datei kopieren



 HS
21-02-2002, 15:36
Hallo zusammen,
ich möchte eine Datei auserhalb document root in ein Verzeichnis im document root kopieren.

Die Datei kann der Benutzer mit einem Formular auswählen und diese wird dann in eine db geschrieben.

Das sieht dann so aus:

C:WINNTTEMPphp9.tmp

Lese ich später den Eintrag und versuche mit copy die Datei zu kopieren geht das nicht ->Datei nicht gefunden.

Gruß
HS

elrond
21-02-2002, 15:57
kann verschiedene gründe haben...

könnte sein, dass der backslash in pfadnamen wichtig ist C:\WINNTTEMPphp9.tmp
^
oder aber ein berechtigungsproblem, weil der Webserver vielleicht keinen zugriff auf das file hat ??

sorry, ich bin auf der win-seite wohl nicht so firm...:rolleyes:

 HS
21-02-2002, 16:02
C:WINNTTEMPphp9.tmp
Ist der Inhalt der Variable aus dem Formular.

Keine Ahnung, warum der / nicht mit drin ist.
Weißt du wie es unter linux geht?

Habe noch einen Server mit Slackware.

Gruß
HS

elrond
21-02-2002, 16:16
wahrscheinlich willst du ein upload auf den server machen, oder verstehe ich dich falsch ?

dann sind es zwei verschiedene aktionen 1. upload, 2. ggf. copy

ich hab etwas ähnliches vor einer weile mal ohne den eigentlichen upload realisiert: ich habe auf meinem linux-server via smb ein verz. freigegebnen, das unterhalb des document-roots liegt. der user kann die datei dort ganz normal hinkopieren und auch der web-server konnte zugreifen. Fpr den zugriff über den webserver habe ich die relevanten daten aus dem filesystem angezeigt:
################################################## ###############
function filelist($path) {

$handle = dir($path);

while ($file = $handle->read()) {
if (($file != ".") && ($file != "..")) {
$f_arr[]=array($path,$file);
}
}
return $f_arr;
}
################################################## ###############


so hab ich's dann angezeigt...
################################################## ###############
$f_arr=filelist("./adr/");
echo "<table align=center width=70% border=0>";

for ($i=0;$i<count($f_arr);$i++) {
$furl=rawurlencode(trim($f_arr[$i][0]).trim($f_arr[$i][1]));
echo " <tr><td align=center><font face=arial><a href='$PHP_SELF?action=groupauto&groupid=$groupid&mode=file&fname=".$furl."'>".$f_arr[$i][1]."</a></font></td></tr>";
}

echo "</table>";
################################################## ###############

vielleicht hilft das schon...:cool:

 HS
21-02-2002, 16:37
ja, es soll ein upload werden.
das problem beseht nur darin, das ich im formular ein

input type="file" name="userfile"

habe.
Wenn der Benutzer nun eine Datei von seiner Festplatte auswählt, steht in der Variable $userfile dann C:WINNTTEMPphp9.tmp

Diese Datei kann ich nicht kopieren :(

Gruß
HS

elrond
21-02-2002, 17:07
sieht einfach so aus, als würdest du die backslashes "verlieren" poste doch den code von deinem formular mal...

du weisst, drei augesn sehen oft mehr als zwei..*g*

 HS
21-02-2002, 17:18
Das Formular sieht so aus:

######################################
<form ENCTYPE="multipart/form-data" method="POST" action="./create.php">
<p>&nbsp;Layout</p>
<table border="0" cellpadding="6" cellspacing="0" width="520">
<tr>
<td width="50%">Hintergrundbild</td>
<td width="50%">Hintergrundfarbe</td>
</tr>
<tr>
<td width="50%"><input type="file" name="bg_picture" size="20"></td>
######################################

Im Script create.php wird die Variable $bg_picture in die db geschrieben.