Seite 1 von 3

upload von dateien

Verfasst: 15.08.2004 11:48
von Lord_Femto
hi.

ich möchte ein bilder upload script kreieren. das löschen von bildern aus einem ordner habe ich schon geschaft (mit unlink). ich arbeite mit php und möchte jetzt irgendwie eine andere perl funktion von dateien und ordner verhältnissen zum beschreiben eines ordners mit einer datei. soll heißen, dass ich das gegenteil von unlink brauche. also das heraufspielen. eine andere frage ist, ich mache das ganze mit einem php formular und möchte so einen Durchsuchen... button machen, wie mache ich das? davon habe ich gar keine ahnung. bitte hier auch um hilfe. und dann möchte ich, dass das script beim uploaden der datei, die datei automatisch mit einem namen versieht. wie geht das.
ja das sind ja drei dinge auf einmal...

danke im voraus.

Verfasst: 15.08.2004 11:57
von PhilippK
Schau dir am besten Mal die PHP-Dokumentation dazu an: http://de2.php.net/features.file-upload

Gruß, Philipp

Verfasst: 15.08.2004 12:08
von Blutgerinsel
move_upload_file ist dabei das wichtigste. Wenn diese Funktion nicht verwendet wird bleibt die Datei temporär auf dem Server und das würde bedeuten das der Server zu einer bestimmten Zeit die temporären Files löscht....

Verfasst: 15.08.2004 13:09
von Lord_Femto
meintest du mehr: move_uploaded_file???

ok. also das eingabe feld habe ich jetzt

Code: Alles auswählen

<form name=form1 enctype=multipart/form-data method=post action=pics-send.php?session=$session&name=$name>
		<table width=99% align=center cellpadding=2 cellspacing=1 border=0 class=forumline>
		  <tr>
			<th colspan=2>Bild hinzufügen</th>
		  </tr>
		  <tr height=26>
			<td class=row1><input type=hidden name=MAX_FILE_SIZE value=30000><span class=gen>Bild uploaden:</span></td>
			<td class=row2><input name=file type=file class=liteoption></td>
		  </tr>
		  <tr height=26>
			<td colspan=3 align=center class=catBottom><input type=submit name=send value=eintragen class=mainoption> <input type=reset value=l&ouml;schen class=liteoption></td>
		  </tr>
		</form>
	  </table>
nun habe ich aber keine ahnung, was mit MAX_FILE_SIZE gemeint ist und wie ich nun das ausführen bearbeiten soll und wie das ganze nun auf den webserver kommt.

also nehme ich $_FILES['file'] ??? wie mache ich nun, dass er automatisch den namen ändert, so, wie ich es möchte, wie kann ich einstellen, dass nur bilder (jpg, gif etc) eingestellt werden? und wie kann ich einstellen, dass nur eine bestimmte dateigröße und bildgröße genommen wird. also es vorher überprüft?

Verfasst: 15.08.2004 13:44
von Blutgerinsel
Generell Max_FILE_Size überlässt es dem Browser zu sagen ist zu groß.
Ist kein wirklicher Schutz.....

1.) Du lädst die File via deines Formulares hoch
2.) Frägst u.A. $_FILES['userfile']['error'] ab ob sich ein Fehler ereignet hat wenn nicht weiter im Script
3.) Move_uploaded_file schiebst du die File $_FILES['userfile']['tmp_name'] in dein jeweiliges Verzeichnis.
Und machst dann dort ein rename auf den neuen Namen du weisst ja via $_FILES['userfile']['tmp_name'] den Namen der temporären Datei.

Abfragen über Dateigröße: $_FILES['userfile']['size']
Abfragen des mime-types: $_FILES['userfile']['type'] in Verbindung mit einem Regulären Ausdruck verhindern ungewollte Dateiendungen

userfile wäre in diesem Beispiel die bezeichnung des name Tags des inputfeldes des typs file

Nebenbei bemerkt warum setzt du in deim HTML Code keine "" :roll:

Verfasst: 15.08.2004 15:01
von Lord_Femto
so etwa?

Code: Alles auswählen

if (! $_FILES['file']['error'])
	{
		if ($_FILES['file']['size'] < 12000 && $_FILES['file']['type'] == jpg, gif, jpeg, png)
		{
		move_uploaded_file($_FILES['file']['tmp_name']);
		}
		else
		{
		echo "Entweder nutzen Sie keine Bilddatei oder ihre Datei überschreitet 12MB";
		}
	}
	else
	{
	echo "Es gab einen Fehler beim Uploaden der Daeti.";
	}
ich verstehe aber nicht, wo tmp_name definiert wird?

warum ich keine "" schreibe ganz einfach, weil ich das mit <?php ?> mache und ich erst zu spät auf das coden mit \ gekommen bin und somit hatte ich keine große lust meine ganzen scripte umzuändern, dann mache ich es jetzt lieber einheitlich.

danke im voraus.

Verfasst: 15.08.2004 15:09
von Blutgerinsel
escapen mit \ ist unüblich es gibt u.A " und '

bsp:

Code: Alles auswählen

$wuff='<font color="red">blubb</font>';
mit anderen Worten dein HTML Code ist schlichtweg ungültig und nicht W3C konform :(

und bitte schau im PHP Manual
move_uploaded_file($_FILES['file']['tmp_name']); ist schon mal falsch Ziel?
http://de2.php.net/manual/de/function.m ... d-file.php

Anwendung von $_FILES['file']['type'] genauso warum schau hier:
http://www.php.net/manual/de/features.file-upload.php

Bitte mach dir die Mühe und lese im PHP Manual :wink:

Verfasst: 15.08.2004 18:41
von Lord_Femto
ich habe mir die links durchgelesen. allerdings werde ich davon auch nicht schlauer.

jetzt habe ich es so gemacht:

Code: Alles auswählen

$dir = 'PB-Bilder/Band/' . $name . '/';
	$file = $dir . $_FILES['file']['name'];
			
	if (move_uploaded_file($_FILES['file']['tmp_name'], $file))
	{
	echo "geklappt";
	}
	
	else
	{
	echo "leider hat das nicht geklappt";
	}
allerdings kam diese fehlermeldung
Warning: move_uploaded_file(PB-Bilder/Band/Eggat/gif2.gif): failed to open stream: No such file or directory in /home/www/web251/html/PB-Loggin/pics-send.php on line 42

Warning: move_uploaded_file(): Unable to move '/home/www/web251/phptmp/phpIgEKSZ' to 'PB-Bilder/Band/Eggat/gif2.gif' in /home/www/web251/html/PB-Loggin/pics-send.php on line 42
leider hat das nicht geklappt
außerdem habe ich jetzt über alle ein backslash vor " gesetzt

Verfasst: 15.08.2004 20:00
von Blutgerinsel
Wer lesen kann ist klar im Vorteil :wink:
No such file or directory
Dein Pfad existiert nicht anlegen via FTP und die entsprechenden chmod Rechte mit geben

Verfasst: 15.08.2004 23:01
von Lord_Femto
ok. habe es hinbekommen. es fehlten ../ angaben.

andere frage. wie kann ich nun aus diesem quellcode einstellen, dass er sobald er auf dem webspace bzw. ordner ist einen neuen namen erhält