2.3k Aufrufe
Gefragt in Webseiten HTML von harvey17 Mitglied (235 Punkte)
hi
ich habe nicht sonderlich viel arnung von html und habe im internet diesen code gefunden mit dem ich datein auf meinen ftp server laden kann. wenn ich nun z.b. das bild "Urlaub08.jpg" hoch laden will möchte ich gerne das er davor eine zufalls zahlen oder buchsteben kombination hinzu fügt. damit das bild nicht überschrieben wird wenn es schon vorhanden ist.

könnt ihr mir sagen wie?
HTML code:

<form
action="<?php echo $_SERVER['PHP_SELF']; ?>"
method="post"
enctype="multipart/form-data">
<input type="file" name="probe" />
<input type="submit" value="Los!" />
</form>
<hr />
<?php
if (isset($_FILES['probe']) and ! $_FILES['probe']['error']) {
// Alternativ: and $_FILES['probe']['size']
move_uploaded_file($_FILES['probe']['tmp_name'],"Upload/".$_FILES["probe"]["name"]);



printf("Die Datei %s steht jetzt als " .

"newfile.txt zur Verfügung.<br />\n",
$_FILES['probe']['name']);
printf("Sie ist %u Bytes groß und vom Typ %s.<br />\n",
$_FILES['probe']['size'], $_FILES['probe']['type']);
}
?>

6 Antworten

0 Punkte
Beantwortet von katy Mitglied (787 Punkte)
Hallo Harvey17,

gefordert ist hier auch nicht HTML sondern PHP.

Wie du siehst füge ich einfach eine neue Variable $neuername ein, die sich aus den bisherigen Infos + der Anzahl der Sekunden seit dem 1.1.1970 zusammensetzt. Damit kannst du auch weiter experimentieren.

<?php
if (isset($_FILES['probe']) and ! $_FILES['probe']['error']) {
// Alternativ: and $_FILES['probe']['size']
$neuername="Upload/".date("U").$_FILES["probe"]["name"];
move_uploaded_file($_FILES['probe']['tmp_name'],$neuername);



printf("Die Datei %s steht jetzt als " .

"newfile.txt zur Verfügung.<br />\n",
$_FILES['probe']['name']);
printf("Sie ist %u Bytes groß und vom Typ %s.<br />\n",
$_FILES['probe']['size'], $_FILES['probe']['type']);
}
?>


du solltest noch überlegen, ob der neue Name auch bei der Kontrollausgabe sinnvoll ist.

katy
0 Punkte
Beantwortet von harvey17 Mitglied (235 Punkte)
ok vielen dank :)
0 Punkte
Beantwortet von harvey17 Mitglied (235 Punkte)
ich hab nich ein problem :) ich wolte nun auch noch die max größe auf 1,5 Mb einstellen und nur den datei typ jpg und gif zualsen. ich habs so prbiert, geht aber auch nicht.

<form
action="<?php echo $_SERVER['PHP_SELF']; ?>"
method="post"
enctype="multipart/form-data">
<input type="file" name="probe" size="25" maxlength="100000" accept="text/*">

<input type="submit" value="Los!" />



</form>
<hr />
<?php



if (isset($_FILES['probe']) and ! $_FILES['probe']['error']

and ! $_FILES['probe']['image/jpeg']) {

// Alternativ: and $_FILES['probe']['size']
$neuername="Upload/jpg/".date("U").$_FILES["probe"]["name"];
move_uploaded_file($_FILES['probe']['tmp_name'],$neuername);



printf("Die Datei %s steht jetzt als " .

"newfile.txt zur Verfügung.<br />\n",
$_FILES['probe']['name']);
printf("Sie ist %u Bytes groß und vom Typ %s.<br />\n",
$_FILES['probe']['size'], $_FILES['probe']['type']);
}
?>
0 Punkte
Beantwortet von katy Mitglied (787 Punkte)
lies bitte zu den beiden von dir vorgenommenen Änderungen dies Zitat aus SelfHTML:
Uns ist auch kein Browser bekannt, der diese Angabe in irgendeiner Weise einschränkend umsetzt....Auch bei dieser Angabe ist uns kein Browser bekannt, der die Auswahl des Benutzers in irgendeiner Form kontrolliert.


Wenn du also etwas einschränken willst, dann musst du das serverseitig machen, also zB. vor move_uploaded_file eine If-Anfrage machen, ob Typ und Größe passen, andernfalls gibts kein move_uploaded_file und das bedeutet die automatische Löschung der Datei sowie das PHP-Skript beendet wird.

katy
0 Punkte
Beantwortet von harvey17 Mitglied (235 Punkte)
ok. ich habe es allerdings auch schon so probiert. zum testen mit textdatein.

<input type="file" name="probe" size="25" maxlength="100000" accept="text/*">

geht aber auch nicht. ich kann trozdem bilder hochladen
0 Punkte
Beantwortet von katy Mitglied (787 Punkte)
Das steht doch schon in Antwort 4: Kein Browser unterstützt das!
Das wäre auch vollkommen leichtsinnig, sich auf eine browserseitige Prüfung zu verlassen, denn nichts ist leichter zu umgehen als browserseitige Prüfungen.

katy
...