AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein (PHP) Copy() bzw. Move_Uploaded_file() > Wie funktionierts?

(PHP) Copy() bzw. Move_Uploaded_file() > Wie funktionierts?

Ein Thema von mr47 · begonnen am 19. Jul 2005 · letzter Beitrag vom 20. Jul 2005
Antwort Antwort
Seite 1 von 2  1 2   
Benutzerbild von mr47
mr47

Registriert seit: 6. Dez 2004
Ort: Stuttgart
644 Beiträge
 
Delphi 2005 Personal
 
#1

(PHP) Copy() bzw. Move_Uploaded_file() > Wie funktioniert

  Alt 19. Jul 2005, 15:24
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 )


mfg und danke mr47
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#2

Re: (PHP) Copy() bzw. Move_Uploaded_file() > Wie funktion

  Alt 19. Jul 2005, 15:28
Moin mr47,

in der php-Doku gibts einen Artikel zu File-uploads: http://de.php.net/manual/de/features.file-upload.php

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von mr47
mr47

Registriert seit: 6. Dez 2004
Ort: Stuttgart
644 Beiträge
 
Delphi 2005 Personal
 
#3

Re: (PHP) Copy() bzw. Move_Uploaded_file() > Wie funktion

  Alt 19. Jul 2005, 15:56
Hi! Danke Alcaeus.

Jetzt steht hier ein Code:
Code:
<?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);
}

?>
An welcher Stelle soll ich jetzt den Dateinamen einfügen? $uploaddir steht ja für das Verzeichnis auf dem Server oder?
[edit1]: Ja ich weis ich bin nicht so toll in PHP. Aber ich brauchs wirklich! [/edit]
[edit2]Rechtschreibfehler[/edit2]
  Mit Zitat antworten Zitat
Benutzerbild von S2B
S2B

Registriert seit: 1. Feb 2004
Ort: Aachen
1.268 Beiträge
 
#4

Re: (PHP) Copy() bzw. Move_Uploaded_file() > Wie funktion

  Alt 19. Jul 2005, 16:05
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.
Simon Praetorius
Gruß
S2B
  Mit Zitat antworten Zitat
Benutzerbild von mr47
mr47

Registriert seit: 6. Dez 2004
Ort: Stuttgart
644 Beiträge
 
Delphi 2005 Personal
 
#5

Re: (PHP) Copy() bzw. Move_Uploaded_file() > Wie funktion

  Alt 19. Jul 2005, 20:37
Hi. Ok ich hab den Code folgendermaßen abgeändert:

Code:
<?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);


?>
Die Ausgabe im Browser ist

Zitat:
Possible file upload attack! Here's some debugging info:
Array
(
)
und die Datei liegt nicht im Serververzeichnis Sowohl C:\a.txt als auch das Verzeichnis(C:\InetPub\wwwroot)\tmp\ existieren. Was ist falsch ? (Der Pfad in den Klammern kommt von IIS)
mfg mr47
  Mit Zitat antworten Zitat
Phistev
(Gast)

n/a Beiträge
 
#6

Re: (PHP) Copy() bzw. Move_Uploaded_file() > Wie funktion

  Alt 19. Jul 2005, 20:52
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:
if (move_uploaded_file("C:\a.txt", $uploaddir . "abc.txt")) {
mit
Code:
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploaddir . "abc.txt")) {
, dann sollt's funzen.
  Mit Zitat antworten Zitat
Benutzerbild von mr47
mr47

Registriert seit: 6. Dez 2004
Ort: Stuttgart
644 Beiträge
 
Delphi 2005 Personal
 
#7

Re: (PHP) Copy() bzw. Move_Uploaded_file() > Wie funktion

  Alt 19. Jul 2005, 21:18
Aha! Danke!

Kann ich so
Code:
$_FILES['userfile']['tmp_name']='C:\a.txt';
etwas in die Variable $_Files schreiben? Weil wenn ich das so mache und dann die Codezeile
Code:
move_uploaded_file($_FILES['userfile']['tmp_name'], $uploaddir . 'abc.txt')
verwende kommt

Zitat:
Possible file upload attack! Here's some debugging info:
Array
(
[userfile] => Array
(
[tmp_name] => C:\a.txt
)

)
Und die DAtei ist wieder net auf em Server. Oder darf man das so auch net machen?
PS: Also ich will momentan noch immer die gleiche DAtei hochladen. Keine verschiedene! Deshalb dieses Hardgecodete "C:\a.txt"

mfg mr47
  Mit Zitat antworten Zitat
Phistev
(Gast)

n/a Beiträge
 
#8

Re: (PHP) Copy() bzw. Move_Uploaded_file() > Wie funktion

  Alt 19. Jul 2005, 21:34
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.
  Mit Zitat antworten Zitat
Benutzerbild von mr47
mr47

Registriert seit: 6. Dez 2004
Ort: Stuttgart
644 Beiträge
 
Delphi 2005 Personal
 
#9

Re: (PHP) Copy() bzw. Move_Uploaded_file() > Wie funktion

  Alt 20. Jul 2005, 12:09
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
  Mit Zitat antworten Zitat
Benutzerbild von Airblader
Airblader

Registriert seit: 29. Okt 2004
Ort: Geislingen an der Steige
742 Beiträge
 
#10

Re: (PHP) Copy() bzw. Move_Uploaded_file() > Wie funktion

  Alt 20. Jul 2005, 12:16
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
Ingo Bürk
Es nimmt der Augenblick, was Jahre geben.

Johann Wolfgang von Goethe
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:34 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz