Dateien per PHP auf den Server laden
-
- PHP
- Michael Lorer
Read-Only-Modus
Das 01-Supportforum befindet sich im Read-Only-Modus. Es ist nicht mehr möglich sich zu registrieren, neue Themen zu erstellen oder auf bestehende Themen zu antworten.
Alle Inhalte stehen bis auf absehbare Zeit jedoch weiterhin lesend zur Verfügung.
Bei Fehlern oder Problemen mit PHP-Scripten von 01-Scripts.de erstellen Sie gerne einen Issue-Eintrag auf Github oder nehmen Sie per E-Mail Kontakt auf.
-
-
Gibt es noch eine möglichkeit die datei die man hoch läd noch in einem in einen festen wert umbennen? so das man so zu sagen nur eine datei hochladen kann, da sie ja immer überschrieben wird?
-
Hallo,
versuche es damit:
PHP- <?PHP
- if(isset($_POST['send']) && $_POST['send'] == "ja")
- {
- //Pfad zum Ordner, in dem die Datei gespeichert werden soll//
- //Dieser Ordner muss Schreibrechte besitzen (Chmod 777)//
- $uploaddir = '/home/name/www/pfad/ordner/';
- unlink($uploaddir."/filename.endung");
- $endungsausgabe = $_FILES['userfile']['name'];
- $endungsarray = explode(".", $endungsausgabe);
- $endung = $endungsarray[count($endungsarray)-1];
- if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploaddir . "filename." . $endung)) {
- print "Datei erfolgreich hochgeladen.\n";
- }
- else
- {
- print "Fehler beim Hochladen der Datei. Fehlermeldung:\n";
- print_r($_FILES);
- }
- }
- ?>
Jweils "Filename" durch den gewünschten Namen ersetzen.
MfG
-
wenn ich das script so mache dann kommt folgende 'fehlermeldung'
SecureSSI: Das Script (/usr/export/www/vhosts/funnetwork/hosting/xenonx/forum/upload/testupload.php) hat versucht ausserhalb von ihrem Userverzeichniss auf die Datei /huhu.jpg zuzugreifen.
Dies ist nicht erlaubt!Warning: unlink(): Sicherheitsverletzung: in /usr/export/www/vhosts/funnetwork/hosting/xenonx/forum/upload/testupload.php on line 18
Datei erfolgreich hochgeladen.aber die datei wird hochgeladen
-
ahhh klappt doch, danke
-
Hallo Michael!
Bei mir kommt diese Fehlermeldung:
SecureSSI: Das Script (/usr/export/www/vhosts/funnetwork/hosting/shinigami2006/html/upload.html) hat versucht ausserhalb von ihrem Userverzeichniss auf die Datei /html/test/bg_rand_u.gif zuzugreifen.
Dies ist nicht erlaubt!Warning: move_uploaded_file(): Sicherheitsverletzung: in /usr/export/www/vhosts/funnetwork/hosting/shinigami2006/html/upload.html on line 90
Fehler beim Hochladen der Datei. Fehlermeldung: Array ( [userfile] => Array ( [name] => bg_rand_u.gif [type] => image/gif [tmp_name] => /usr/export/tmp/phpYVAz9q [error] => 0 [size] => 167 ) )Ich versteh leider nur Bahnhof!
LG, Stephie
-
Schade, ich bekomme das net gebacken.
Kannst du mir mal bitte das ganze Script posten? Oder mir sagen, wo ich den 3. Abschnitt mit den Variablen einsetzen muss? Und muss ich da noch was einstellen/verändern/ergänzen?
Ich habe das jetzt schon mehrmals versucht, aber bei mir kommt immer wieder eine Fehlermeldung. Hab den Ordner auch auf Chmod 777 gesetzt. Weiß nimmer, was nun net stimmen soll.
Danke und Gruß,
Stephie -
Hallo Stephie,
Vielleicht - und da bin ich mir nicht wirklich sicher - könnte eine relative Pfadangabe zum Uploadordner dein Problem lösen:
in diesem Beispiel befindet sich der Upload-Ordner in dem Verzeichnis wo die Upload-php-datei zu finden ist.
Ich hoffe das hilft Dir.
-
-
Hi @ Dirtynight und Michael!
Also, die Fehlermeldung stand einen Post drüber, die ist aber durch die Hilfe von Dirtynight nun weg. ^.~V *thanks*
Dafür habe ich jetzt eine andere Frage bzw. Problem.
Ich hab gestern eine Datei als Test hochgeladen und es hat wunderbar geklappt. Hab es dann nochmal probiert und da hat er gesagt "erfolgreich hochgeladen", aber ich hab keine weitere Datei im Ordner gefunden.Weiß jemand von euch, woran das wieder liegt? Hab zwischen den beiden Uploads an der Datei auch nix verändert.
LG, Stephie
PS: Wo sind den eigentlich die Smilies hin?
-
Hi,
jetzt habe ich die Fehlermeldung auch gefunden, sorry...
Hast du denn versucht eine Datei mit gleichem Namen hochzuladen oder hieß die zweite Datei anders?
Gruß,
Michael -
Hallo,
die zweite Datei hieß anders. Habs auch mehrmals mit unterschiedlichen Dateien probiert. Hat aber noch nicht wieder funktioniert.
Hat das vielleicht was mit den Variablen zu tun? Die hab ich nämlich nicht mit rein kopiert, weil ich nicht so richtig weiß wohin. ^^°
LG, Stephie
-
Häng doch mal bitte dein komplettes Script hier an.
Gruß,
Michael -
Kein Problem, hier ist es:
<form enctype="multipart/form-data" action="<?PHP echo $PHP_SELF; ?>" method="POST"><input type="file" name="userfile" />
<input type="hidden" name="send" value="ja" />
<input type="submit" value="Datei hochladen" /><?PHP
if(isset($_POST['send']) && $_POST['send'] == "ja")
{//Pfad zum Ordner, in dem die Datei gespeichert werden soll//
//Dieser Ordner muss Schreibrechte besitzen (Chmod 777)//
$uploaddir = './test';if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploaddir . $_FILES['userfile']['name'])) {
print "Datei erfolgreich hochgeladen.\n";
}
else
{
print "Fehler beim Hochladen der Datei. Fehlermeldung:\n";
print_r($_FILES);
}}
?>Mal noch ne Frage. Kann man es auch so gestalten, das es noch ein Feld gibt, wo der Uploader (? <- weiß net, ob man den so nennt ^^°) seinen Namen reinschreiben muss?
-
Hi,
schreib mal statt:
$uploaddir = './test';Das:
$uploaddir = 'test/';Damit gehts bei mir.
MfG,
Michael -
Hallo Michael!
Danke, es funktioniert einwandfrei!
LG, Stephie
-
Hey zusammen,
Hat jemand von euch eigentlich ein funktionierendes (!!!) Skript, welches passend zu dem Dateiupload eine Progressbar ausführt ?
Die Klasse HTML_PROGRESS (http://laurent-laville.org/spip/rubrique.php3?id_rubrique=5)
macht den Anschein, als würde sie dieser Herausforderung gerecht werden, jedoch finde ich in den Examples keine passendes (für dateiupload) Beispiel. Mit Klassen kenne ich mich nicht gut aus.thx in advance !
-
-
bei mir kommt diese fehlermeldung:
Fehler beim Hochladen der Datei. Fehlermeldung: Array ( [userfile] => Array ( [name] => 64362774_1.jpg [type] => image/jpeg [tmp_name] => /tmp/phpTO96fy [error] => 0 [size] => 12565 ) )
was mache ich falsch ?
-
Poste bitte mal dein ganzes verwendetes Script, das du dir aus dem Codeschnipsel gebastelt hast.
MfG,
Michael Lorer