Dateiupload
Stefan L
- php
0 Andreas Korthaus0 AndreD0 Andreas
Hi,
ich habe folgendes Script zum upload von Dateien geschrieben. Das funzt aber net. er sagt jedesmal daas er die datei nicht erstellen konnte. muss ich noch am webserver was einstellen. wenn ja waas??
<form action="<?php print $PHP_SELF ?>" method="post" enctype="multipart/form-data">
<input type="file" name="probe">
<input type="submit">
</form>
<?php
if (isset($probe))
{
$probe = stripslashes($probe);
copy($probe, "./newfile.txt");
}
?>
kann ich den inhalt der dateien die uim file-feld angeben wurden, auch auslesen ohne das ich sie hochlade. d.h. der user qwählt die datei auf seinen rechner aus und mein script auf dem server liest die datei aus und schreibt den inhgalt in ne db.
geht das
Hi!
Der von Dir verwendete Code ist hoffnungslos veraltet. Vor allem unter Sicherheits-Aspekten würde ich Dir die Verwendung von $_FILES und move_uploades_file() unbedingt empfehlen, wie das genau funktioniert ist unter folgenden Links sehr gut und ausführlich erklärt:
http://www.php.net/manual/de/features.file-upload.php
http://php-faq.de/q/q-formular-upload-php4.html
Grüße
Andreas
muss ich noch am webserver was einstellen. wenn ja waas??
hab mir jetzt dein script nicht genauer angeschaut, sollte aber funktionieren. check mal ob du schreibrechte auf dem Ordner des Webservers hast (chmod 777).
kann ich den inhalt der dateien die uim file-feld angeben wurden, auch auslesen ohne das ich sie hochlade. d.h. der user qwählt die datei auf seinen rechner aus und mein script auf dem server liest die datei aus und schreibt den inhgalt in ne db.
geht das
ja, in der globalen Variablen $_FILES steckt alles drin was du brauchst:
$filename = $_FILES['datei']['name'];
$filetype = $_FILES['datei']['type'];
$filesize = $_FILES['datei']['size'];
$filetmp = $_FILES['datei']['tmp_name'];
$fileerror = $_FILES['datei']['error'];
Wenn Du es so Variablen zuweist kannst Du die Werte wunderbar hinschreiben wo Du möchtest; Ausgabe oder DB...
Gruss AndreD
Hallo Stefan,
ich benutze folgende Abfrage für das Hochladen von Dateien.
Funktioniert bei mir einwandfrei.
CODE:
<?php
if ((!empty($HTTP_POST_FILES['probe']['tmp_name']))&&
(is_uploaded_file($HTTP_POST_FILES['probe']['tmp_name'])))
{
move_uploaded_file($HTTP_POST_FILES['probe']['tmp_name'],$PFAD.$HTTP_POST_FILES['probe']['name']);
}
?>
Die max Größe deiner Datei muß in der php.ini eingestellt werden.
php.ini:
;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;
; Whether to allow HTTP file uploads.
file_uploads = On
; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
;upload_tmp_dir =
; Maximum allowed size for uploaded files.
upload_max_filesize = 2M