upload von dateien

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Lord_Femto
Mitglied
Beiträge: 701
Registriert: 19.12.2003 15:53
Wohnort: Berlin

upload von dateien

Beitrag 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.
Gruß Lord_Femto
visit - http://www.pandemicbrew.de
Project X
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

Schau dir am besten Mal die PHP-Dokumentation dazu an: http://de2.php.net/features.file-upload

Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
Benutzeravatar
Blutgerinsel
Mitglied
Beiträge: 1801
Registriert: 19.07.2004 18:53
Wohnort: Landkreis Ulm
Kontaktdaten:

Beitrag 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....
Lord_Femto
Mitglied
Beiträge: 701
Registriert: 19.12.2003 15:53
Wohnort: Berlin

Beitrag 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?
Gruß Lord_Femto
visit - http://www.pandemicbrew.de
Project X
Benutzeravatar
Blutgerinsel
Mitglied
Beiträge: 1801
Registriert: 19.07.2004 18:53
Wohnort: Landkreis Ulm
Kontaktdaten:

Beitrag 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:
Lord_Femto
Mitglied
Beiträge: 701
Registriert: 19.12.2003 15:53
Wohnort: Berlin

Beitrag 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.
Gruß Lord_Femto
visit - http://www.pandemicbrew.de
Project X
Benutzeravatar
Blutgerinsel
Mitglied
Beiträge: 1801
Registriert: 19.07.2004 18:53
Wohnort: Landkreis Ulm
Kontaktdaten:

Beitrag 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:
Lord_Femto
Mitglied
Beiträge: 701
Registriert: 19.12.2003 15:53
Wohnort: Berlin

Beitrag 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
Gruß Lord_Femto
visit - http://www.pandemicbrew.de
Project X
Benutzeravatar
Blutgerinsel
Mitglied
Beiträge: 1801
Registriert: 19.07.2004 18:53
Wohnort: Landkreis Ulm
Kontaktdaten:

Beitrag 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
Lord_Femto
Mitglied
Beiträge: 701
Registriert: 19.12.2003 15:53
Wohnort: Berlin

Beitrag 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
Gruß Lord_Femto
visit - http://www.pandemicbrew.de
Project X
Antworten

Zurück zu „Coding & Technik“