Dateiupload => Der Name der Datei soll so bleiben !!
Marco
- php
Hallo zusammen,
nun wenn ich mit dem Scirpt
<?php
if (isset($probe)) :
copy($probe, "$myDir"."sonderangebot.jpg");
echo("···> Die Datei wurde erfolgreich hochgeladen !!");
endif;
?>
die Datei hochlade dann heisst Sie ja immer sonderangebot.jpg
ich möchte jetzt aber, dass die Datei ihren originalen Namen behält also wenn ich z.B die Datei hallo.doc hochlade, dass sie dann auf meinem Server auch hallo.doc heisst.
Was genau muss ich da ändern.
Vielen Dank für Eure Hilfe
Gruss Marco
Hallo Marco.
Ein Feature-Artikel befasst sich speziell mit dem Thema Dateiupload mit PHP (http://aktuell.de.selfhtml.org/artikel/phpasp/php-uploadcheck/index.htm#a4). Ich denke es ist besser Dich darauf zu verweisen denn dort steht diese und noch viel mehr Wissenswertes dazu.
Grüße aus Würzburg
Julian
Hallo Marco.
Ein Feature-Artikel befasst sich speziell mit dem Thema Dateiupload mit PHP (http://aktuell.de.selfhtml.org/artikel/phpasp/php-uploadcheck/index.htm#a4). Ich denke es ist besser Dich darauf zu verweisen denn dort steht diese und noch viel mehr Wissenswertes dazu.
Grüße aus Würzburg
Julian
Hallo Julian,
ich habe jetzt alles durchgelesen sogar 2x aber es klappt immer noch nicht dass der Dateiname so bleibt wie auf meinem Rechner... Ich will doch nur wenn ich z.B hallo.doc hochlade, dass Sie auch so auf dem Server ist !!
hmm, wieso klappt das nicht bei mir.
Freue mich auf Deine Antwort !!
Hallo Marco.
ich wüßte darauf keine Antwort, die nicht in dem Artikel steht!
Hast Du wirklich die Namenszeile beachtet?
<input type="file" name="DeinFilename"> ...
Tip: prüfe den Namen dann auch auf zulässige Zeichen (keine Lücken, Umlaute etc. ),
sonst funktioniert bei einigen Servern/Browsern der Up/Download
nicht immer...
Gruesse Dacor
Hallo Dacor,
Hast Du wirklich die Namenszeile beachtet?
<input type="file" name="DeinFilename"> ...
Das ist so nicht richtig verstanden.
name="DeinFilename" bezeichnit im Input-Objekt den Namen der Variablen, die den Filename auf dem Client transportiert.
PHP macht auf dem Zielsystem (Server / Host) dann
$DeinFilename
$DeinFilename_name
$DeinFilename_type
$DeinFilename_size
daraus.
IN den Variablen mit dem Namen "DeinFilename..." stehen die gesuchten Werte.
Liebe Grüße aus http://www.braunschweig.de
Tom
Hallo Dacor,
Hast Du wirklich die Namenszeile beachtet?
<input type="file" name="DeinFilename"> ...
Das ist so nicht richtig verstanden.
name="DeinFilename" bezeichnit im Input-Objekt den Namen der Variablen, die den Filename auf dem Client transportiert.
PHP macht auf dem Zielsystem (Server / Host) dann
$DeinFilename
$DeinFilename_name
$DeinFilename_type
$DeinFilename_size
daraus.
IN den Variablen mit dem Namen "DeinFilename..." stehen die gesuchten Werte.
Liebe Grüße aus http://www.braunschweig.de
Tom
Hallo Tom,
ja scoh aber ich kann dann nicht einfach echo $DeinFilename_name machen sonst kommt da nichts muss doch noch eine Variable davor setzen oder ?!?
Hallo Marco,
$DeinFilename
$DeinFilename_name
$DeinFilename_type
$DeinFilename_size
daraus.
IN den Variablen mit dem Namen "DeinFilename..." stehen die gesuchten Werte.
ja scoh aber ich kann dann nicht einfach echo $DeinFilename_name machen sonst kommt da nichts muss doch noch eine Variable davor setzen oder ?!?
Jetzt hast Du mich gerade auf dem linken Fuß erwischt. Aber ich weiß ja, wo man nachschauen kann: http://www.php.net/manual/de/features.file-upload.php
Du hast also Recht, es ist eine extra Record-Gruppe (Klasse) dafür eingerichtet worden.
Grüße
Tom
Hallo Marco,
$DeinFilename
$DeinFilename_name
$DeinFilename_type
$DeinFilename_size
daraus.
IN den Variablen mit dem Namen "DeinFilename..." stehen die gesuchten Werte.
ja scoh aber ich kann dann nicht einfach echo $DeinFilename_name machen sonst kommt da nichts muss doch noch eine Variable davor setzen oder ?!?
Jetzt hast Du mich gerade auf dem linken Fuß erwischt. Aber ich weiß ja, wo man nachschauen kann: http://www.php.net/manual/de/features.file-upload.php
Du hast also Recht, es ist eine extra Record-Gruppe (Klasse) dafür eingerichtet worden.
Grüße
Tom
Vielen Dank für Deine Bemühungen !!
Hallo Marco,
http://aktuell.de.selfhtml.org/artikel/phpasp/php-uploadcheck/index.htm#a4
Den Artikel will ich noch um eine dicke Warnung ergänzen:
Lasse niemals zu, dass jemand eine Datei auf Dein System hochlädt und den Zielnamen selbst bestimmt. Du musst zumindest einige Dateitypen ausschließen. Stell Die mal vor, da lädt Dir eine Datei "DeleteAll.php" auf Dein System hoch. Der Name isart dabei sogar ganz unerheblich, er soll nur zum Ausdruck bringen, was die Datei so macht. Die Endung ist hier keinesfalls egal. Wenn Dein PHP-Parser auf alle Dateien mit den Endungen *.php, *.html, *.privat reagiert, dann solltest Du solche "Uploads" nicht zulassen.
Zur Namensvergabe:
$thefile Pfad und Name der Datei wie sie im Filesystem zu finden ist. (meistens in der Form /tmp/php234lksdaflk)
$thefile_name Der Name der Datei, wie sie auf dem Clientsystem genannt wurde
In "$thefile" steht der Name der temporären Datei auf dem System.
In "$thefile_name" steht der Name der Datei auf dem Client. Aber nur dann, wenn die PHP-Version nicht zu neu ist. Da gibt es einen Bug. Musst hier mal im Forum nach "PHP-Version Bug" suchen.
Lass Dir die Variablen mal mit "echo" ausgeben, dann weißt Du, ob sie richtig ankommen.
Mit
$rights = umask(0460); // kann auch 0600 sinnvoll sein
$OK = copy($thefile,$zielpfad.$thefile_name);
if ($OK)
{
chgrp($zielpfad.$thefile_name,$NewGroupName); // neue Gruppe der Datei
}
kopierst Du die Datei dann an die passende Stelle.
Eigentümer (u) der Datei wird immer der PHP-Deamon (wwwrun). Den kannst du nicht ändern. Die Gruppe kann und sollte sofort nach dem Kopieren angepasst werden, damit DU z.B. auch per ftp rankommst an die Datei.
Die Rechte für others sollten immer auf 0 eingestellt werden.
Wenn Du das jetzt nachbaust, müsste es klappen.
Grüße aus http://www.braunschweig.de
Tom
Hallo Tom
Wow super werde ich mir gleich anschauen vielen Dank für die Super infos, bei meinem Upload muss man sich eh zuvor einloggen. deshalb können nur 2-3 Personen zu dem Formular :o) also ist das mit den Dateien nicht sooo schlim..
Danke für die Hilfe !!
Gruss Marco