![]() |
(PHP) Copy() bzw. Move_Uploaded_file() > Wie funktioniert
Hi!
Ich will eine Datei per PHP-Script hochladen. Mein Problem ist folgendes: Ich weiß net wie man die Funktionen Copy() oder Move_Uploaded_File() korreckt aufruft. Wenn man da einfach Pfade eingibt kommt ein Fehler, dass der Pfad nicht existiert (bei Copy auf einem IIS-Server). Kann mir jemand sagen wie man diese Funktionen aufruft? Bei Google hab ich nur andere Sachen gefunden (von Leuten die schon wissen wie's geht :mrgreen: ) mfg und danke mr47 |
Re: (PHP) Copy() bzw. Move_Uploaded_file() > Wie funktion
Moin mr47,
in der php-Doku gibts einen Artikel zu File-uploads: ![]() Greetz alcaeus |
Re: (PHP) Copy() bzw. Move_Uploaded_file() > Wie funktion
Hi! Danke Alcaeus.
Jetzt steht hier ein Code:
Code:
An welcher Stelle soll ich jetzt den Dateinamen einfügen? $uploaddir steht ja für das Verzeichnis auf dem Server oder?
<?php
// In PHP kleiner als 4.1.0 sollten Sie $HTTP_POST_FILES anstatt $_FILES verwenden. // In PHP kleiner als 4.0.3 verwenden Sie copy() und is_uploaded_file() anstatt von // move_uploaded_file() $uploaddir = '/var/www/uploads/'; print "<pre>"; if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploaddir . $_FILES['userfile']['name'])) { print "File is valid, and was successfully uploaded. Here's some more debugging info:\n"; print_r($_FILES); } else { print "Possible file upload attack! Here's some debugging info:\n"; print_r($_FILES); } ?> [edit1]: Ja ich weis ich bin nicht so toll in PHP. Aber ich brauchs wirklich! :wink:[/edit] [edit2]Rechtschreibfehler[/edit2] |
Re: (PHP) Copy() bzw. Move_Uploaded_file() > Wie funktion
Der Dateiname wird schon beim Upload ausgelesen und befindet sich dann in $_FILES['userfile']['name']. Wenn du also den Namen verändern willst, musst du einfach jeweils das $_FILES['userfile']['name'] durch den Namen (evtl. mit Dateierweiterung) austauschen.
|
Re: (PHP) Copy() bzw. Move_Uploaded_file() > Wie funktion
Hi. Ok ich hab den Code folgendermaßen abgeändert:
Code:
Die Ausgabe im Browser ist
<?php
// In PHP kleiner als 4.1.0 sollten Sie $HTTP_POST_FILES anstatt $_FILES verwenden. // In PHP kleiner als 4.0.3 verwenden Sie copy() und is_uploaded_file() anstatt von // move_uploaded_file() $uploaddir = '/tmp/'; print "<pre>"; if (move_uploaded_file("C:\a.txt", $uploaddir . "abc.txt")) { print "File is valid, and was successfully uploaded. Here's some more debugging info:\n"; print_r($_FILES); } else { print "Possible file upload attack! Here's some debugging info:\n"; print_r($_FILES); } ?> Zitat:
mfg mr47 |
Re: (PHP) Copy() bzw. Move_Uploaded_file() > Wie funktion
Falsch ist, dass du versucht, auf die Festplatte des Servers zuzugreifen, anstatt auf die Datei die der Benutzer per Formular hochlädt. Ersetz also
Code:
mit
if (move_uploaded_file("C:\a.txt", $uploaddir . "abc.txt")) {
Code:
, dann sollt's funzen.
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploaddir . "abc.txt")) {
|
Re: (PHP) Copy() bzw. Move_Uploaded_file() > Wie funktion
Aha! Danke!
Kann ich so
Code:
etwas in die Variable $_Files schreiben? Weil wenn ich das so mache und dann die Codezeile
$_FILES['userfile']['tmp_name']='C:\a.txt';
Code:
verwende kommt
move_uploaded_file($_FILES['userfile']['tmp_name'], $uploaddir . 'abc.txt')
Zitat:
PS: Also ich will momentan noch immer die gleiche DAtei hochladen. Keine verschiedene! Deshalb dieses Hardgecodete "C:\a.txt" :wink: mfg mr47 |
Re: (PHP) Copy() bzw. Move_Uploaded_file() > Wie funktion
Die Funktion interessiert (erstmal) nicht, wie die Datei heißt, sondern ob sie hochgeladen wurde. Dateien im Stammverzeichnis des Servers sind das normalerweise nicht. Vergiss niemals, dass das Script auf dem Server läuft, also nicht auf die Festplatte des Clients zugreifen kannst. Wenn du immer die gleiche Datei hochladen möchtest, musst du im Formular immer wieder die gleiche Datei angeben.
|
Re: (PHP) Copy() bzw. Move_Uploaded_file() > Wie funktion
Ich hab jetzt verstanden wo mein denkfehler liegt! Aber das mit immer der gleichen Datei kann ich net glauben. Ein Formular schreibt doch auch nur was in die Variable rein, oder? Dann muss ich dass doch auch manuell machen können....
mfg und Danke mr47 |
Re: (PHP) Copy() bzw. Move_Uploaded_file() > Wie funktion
Nein, es ist sicherheitstechnisch nicht möglich.
Was für ein Paradies für Hacker wäre es denn, sowas zu machen? Dateinamen können NUR manuell vom User festgelegt werden (input mit type file). Der Trick dabei ist, dass nicht der Dateiname im Script bei dir vorhanden ist. Mit Absenden des FOrmulars wird die Datei autom. temporär hochgeladen. move_uploaded_file verschiebt sie nur - wie der Name sagt - in ein Verzeichnis, in dem die Datei nach Scriptende nicht gelöscht wird. air |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:18 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz