Problem mit Fileupload per POST

Seite 1 von 2 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/problem_mit_fileupload_per_post_51577/page_1 - zur Vollversion wechseln!


jives schrieb am 13.10.2002 um 18:42

Ich hab mich schon durch das Manual (on- und offline) und ein PHP-Buch gewühlt, aber ich bekomm den Fileupload einfach nicht hin :(

Mein Form tag schaut so aus:
<form action="upload.php" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="300000">
<input type="file" name="file" size="50">
<input type="submit" value="Submit">
<input type="hidden" name="sub" value="1">
</form>

Und das Script so (alles voller debugzeugs ;)):
if ($sub == 1) {

echo $HTTP_POST_VARS['file']['name'];
echo "<br>";
echo $HTTP_POST_VARS['file']['tmp_name'];
echo "<p>";
echo "TEMP-FILE: $file<br>";
echo "ORIG-FILE: $file_name<br>";
echo "SIZE: $file_size<p>";

$dest = dirname($PATH_TRANSLATED);
echo "DIR: $dest<p>";

if($file) {

copy($HTTP_POST_VARS['file']['tmp_name'], $dest);
echo $test;
}

Was ich komisch finde, ist dass $HTTP_POST_VARS['file']['name'] und $HTTP_POST_VARS['file']['tmp_name'] jeweils auf "j" gesetzt werden, $file aber logischerweise auf jokes.txt (meine Testdatei). $file_name und $file_size die laut PHP-Offline-manual existieren sollten, gibts gar nicht erst :mad:

Auf jeden Fall bekomm ich diesen Fehler:
Warning: Unable to open 'j' for reading: No such file or directory in /path/upload.php on line 27

Wenn ich statt den POST_VARS $file im copy verwende, gehts auch nicht.

EDIT: $HTTP_POST_VARS['file']['size'] wird auch auf "j" gesetzt...


jives schrieb am 13.10.2002 um 20:16

Kann mir denn wirklich niemand helfen? :(


schrieb am 13.10.2002 um 20:46

Schau ins PHP-Manual, da ist das besser beschrieben als in irgendeinem buch ;)


noledge schrieb am 13.10.2002 um 20:55

die idiotensicherste beschreibung hab ich für einen arbeitskollegen auf der inode-homepage gefunden - gleich der zweite punkt -> http://www6.inode.at/support/webser...t_unix/php.html


schrieb am 13.10.2002 um 21:49

ärger insecure :eek:


jives schrieb am 13.10.2002 um 23:01

Ähm, genau den Vorschlag vom noli hab ich verwendet. Mal abgesehen davon dass er insecure ist und zu Testzwecken dient, funktioniert er nicht!

Ich hab hier eh schon ärgeres Debugging gemacht und bin draufgekommen (wie in meinem Post beschrieben -> wlkikiv) dass einige Varibalen entweder nicht oder nur total unsinnig gesetzt werden. Im Manual (egal in welchem) ist nichts über solche Probleme zu finden.

Was nutzt mir bei $_FILES['file']['size'] bzw. bei $HTTP_POST_VARS['file']['size'] der Anfangsbuchstabe des Namens meiner Datei?

Kann es sein, dass mei Provider keinen Fileupload per Script unterstützt?


Nostra schrieb am 14.10.2002 um 17:19

Zitat von KaZaa
Zitat von Goldlocke
212 MHz für PC3500C2 ist SCHWACH!

Allerdings sind 212MHz für 2x 512MB Riegel Ownage pur!

Bravo Corsair! :D

probiers mal so:
$path=dirname($PATH_TRANSLATED);
$path=str_replace("\\","/",($path));
if (($file<>"none") || ($file<>"")) {
$dest=$path.$file_name;
if (copy($file,$dest)) echo "uploaded";
}

wenn das net geht dann ändere mal deine Variable file in einen x-beliebigen Namen, da es sein kann dass dieser Variablennamen reserviert ist.
Ansonsten sprich mit deinem ISP ;)


jives schrieb am 14.10.2002 um 17:56

Thx für die Hilfe, das funktioniert aber auch nicht (hab ich schon probiert). Wird wohl am Webspace liegen :(


watchout schrieb am 14.10.2002 um 18:56

Zitat von KaZaa
Thx für die Hilfe, das funktioniert aber auch nicht (hab ich schon probiert). Wird wohl am Webspace liegen :(
ähm, wenn es jetz auch ein bisserl verarschend klingt - chmod?


jives schrieb am 14.10.2002 um 20:02

Lol :D 666 und 777 für alle Verzeichnisse ausprobiert - geht nicht :(


jives schrieb am 14.10.2002 um 21:04

ARGH! Ich hupf glei ausm Fenster... wie kann ein einzelner Mensch nur so dumm sein!? :bash:
Das Zauberding das im formtag gefehlt hat war:
ENCTYPE="multipart/form-data" :bash:

Danke für eure Hilfe, aber gegen meine Dummheit ist nix zu tun :D
EDIT: Hab ein bischen mit den bashes übertrieben


funka schrieb am 15.10.2002 um 13:03

es gibt
is_uploaded_file()
und move_uploaded_file()
bitte verwenden


jives schrieb am 16.10.2002 um 19:55

Sind afaik neuere Befehle. Hat mein Testserver net unterstützt (PHP 4.0.0) :)
Aber praktisch sinds schon...


Snoop schrieb am 16.10.2002 um 22:26

hehe der einzige der das problem hier bis jetzt erkannt hat ist da Kazaa :) das encrpyt fehlt im form befehl, ohne dem bleibt der array leer :) erst dann geht das :) also!!!!
<form action="upload.php" method="post" encypte="multipart/form-data" >
Weiters wenn du mit einem upgeloadeten file arbeitest ist es net $_HTTP_POST_VARS[]
sondern $HTTP_POST_FILES[] :) dann sollte alles gayn :)


watchout schrieb am 16.10.2002 um 23:23

Zitat von Snoop
hehe der einzige der das problem hier bis jetzt erkannt hat ist da Kazaa :) das encrpyt fehlt im form befehl, ohne dem bleibt der array leer :) erst dann geht das :) also!!!!
<form action="upload.php" method="post" encypte="multipart/form-data" >
Weiters wenn du mit einem upgeloadeten file arbeitest ist es net $_HTTP_POST_VARS[]
sondern $HTTP_POST_FILES[] :) dann sollte alles gayn :)
:confused:
welchen sinn hat deine feststellung, wie du erkannt hast hat der kazaa das schon erkannt... da es sein thread ist, ist das problem demnach gelöst :p
ausserdem stimmt des was du gschriebn hast sowieso net, weil's net encypte, sondern enctype heisst ;)

bei post-vars muss ich dir recht geben:
$HTTP_POST_VARS['file'] -> php3
$HTTP_POST_FILES -> php4
$_FILES -> php4.1
dass jetzt ersteres mit php4 GARNICHT geht tät ich mich nicht trauen zu behaupten...




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025