Supportnet / Forum / Skripte(PHP,ASP,Perl...)
Bildergallerie + Upload Funktion in PHP
Frage
Tach zusammen!
Habe folgende Fragen:
Ich möchte für meine Homepage eine Art Bildergallerie programmieren.
Also immer eine Seite mit ca 20 Vorschau Bildern.
Wenn man auf ein Bild klickt wird in einem neuen Fenster das Bild in Orginalgröße angezeigt..ganz einfach halt.
Nur was ich noch zusätzlich haben möchte ist das jeder die Möglichkeit hat anhand eines Formular bzw einer Maske selber Bilder hochzuladen.
d.h. der Benutzer kann auf einer Seite aus mehreren Kategorien wie zB. "Lustige Bilder" oder "Animierte Bilder" auswählen und in diese Kategorie selber ein Bild von sich hochladen.
Nach Möglichkeit alles in PHP und eine Art Datenbankanbindung damit die Bilder hochgeladen erden können und auf den Server gespeichert werden können das auch andere User diese Bilder sehen können.
Vielen Dank im voraus
Euer Frosti
Antwort 1 von Nessus
Hi,
wenn es nur über den http-Upload geht, wirst Du hier geholfen:
http://www.dclp-faq.de/q/q-formular-upload-php4.html
Du bist Dir aber bewußt, das Du ganz schnell deinen Server zugemüllt bekommen kannst wenn Du jedem dies ermöglichst.
<schwarzehermodus>
Stelle Dir mal das Szenario vor: Es hat einer was gegen dich und macht ein Upload von div. Dateien, die gegen geltendes Strafrecht verstoßen und zeigt dich an....
</schwarzsehermodus>
entweder ist das schon eine geschlossene, übersichtliche Gruppe, oder es kann sehr schnell sehr teuer werden....
Zumindest solltest Du dann noch die Dateigröße beschränken.
HTH
Nessus
wenn es nur über den http-Upload geht, wirst Du hier geholfen:
http://www.dclp-faq.de/q/q-formular-upload-php4.html
Du bist Dir aber bewußt, das Du ganz schnell deinen Server zugemüllt bekommen kannst wenn Du jedem dies ermöglichst.
<schwarzehermodus>
Stelle Dir mal das Szenario vor: Es hat einer was gegen dich und macht ein Upload von div. Dateien, die gegen geltendes Strafrecht verstoßen und zeigt dich an....
</schwarzsehermodus>
entweder ist das schon eine geschlossene, übersichtliche Gruppe, oder es kann sehr schnell sehr teuer werden....
Zumindest solltest Du dann noch die Dateigröße beschränken.
HTH
Nessus
Antwort 2 von FrozenHeat
da sehe ich nicht das problem...die Homepage befindet sich im Internen Netzwerk und ist nur von Kollegen einsehbar =)
Antwort 3 von FrozenHeat
Ich habe jetzt einmal dieses Script ausprobiert und es kommt dem was ich machen will recht nahe.
<h1>Upload</h1>
<form
action="<?php print $PHP_SELF ?>"
method="post"
enctype="multipart/form-data">
<input type="file" name="probe">
<input type="submit" value="Los!">
</form>
<hr>
<?php
if (isset($probe)) {
if ( isset($HTTP_COOKIE_VARS["probe"]) ||
isset($HTTP_POST_VARS ["probe"]) ||
isset($HTTP_GET_VARS ["probe"])
) die("Aus Sicherheitsgründen stirbt das Script jetzt.");
copy($probe, "./neu.jpg");
printf("Die Datei %s steht jetzt als"
." newfile.txt zur Verfügung.<br>\n",
$probe_name);
printf("Sie ist %s Bytes groß und vom Typ %s.<br>\n",
$probe_size, $probe_type);
}
?>
Das Problem ist nur das er eine neue Datei generiert.
Ich möchste das ein Scipt eine oder mehrere Datei(en) in einen Ordner auf dem Server uploaded und ein andere Script was den Ordner wo die Bilder gespeichert wurden ausließt und die in dem Ordner vorhandenen Bilder in einer HTML seite anzeigt.
Irgend eine Idee?
<h1>Upload</h1>
<form
action="<?php print $PHP_SELF ?>"
method="post"
enctype="multipart/form-data">
<input type="file" name="probe">
<input type="submit" value="Los!">
</form>
<hr>
<?php
if (isset($probe)) {
if ( isset($HTTP_COOKIE_VARS["probe"]) ||
isset($HTTP_POST_VARS ["probe"]) ||
isset($HTTP_GET_VARS ["probe"])
) die("Aus Sicherheitsgründen stirbt das Script jetzt.");
copy($probe, "./neu.jpg");
printf("Die Datei %s steht jetzt als"
." newfile.txt zur Verfügung.<br>\n",
$probe_name);
printf("Sie ist %s Bytes groß und vom Typ %s.<br>\n",
$probe_size, $probe_type);
}
?>
Das Problem ist nur das er eine neue Datei generiert.
Ich möchste das ein Scipt eine oder mehrere Datei(en) in einen Ordner auf dem Server uploaded und ein andere Script was den Ordner wo die Bilder gespeichert wurden ausließt und die in dem Ordner vorhandenen Bilder in einer HTML seite anzeigt.
Irgend eine Idee?
Antwort 4 von Nessus
Hi,
warum willst Du eigentlich das Rad neu erfinden, der http-Upload ist da eigentlich noch das kleinste Programmierproblem. Nutze doch ein fertiges Script, evtl. anpassen und fertig....
In den gängigen Ressourcen solltest Du genug finden.
Nessus
warum willst Du eigentlich das Rad neu erfinden, der http-Upload ist da eigentlich noch das kleinste Programmierproblem. Nutze doch ein fertiges Script, evtl. anpassen und fertig....
In den gängigen Ressourcen solltest Du genug finden.
Nessus
Antwort 5 von FrozenHeat
will das gerne selber machen...runterladen und anpassen is zu einfach is ja wie abpausen.
Antwort 6 von TheHappyJoker
Hm, der Fehler liegt darin, dass beim PHP-Upload die Datei nicht wirklich in das Verzeichniss hochgeladen wird, wo das Script liegt. Der Zielort ist zuerst das temporäre Verzeichnis (Kann sein, dass es nicht auf jeden Server so ist, aber bei meinen ist es so).
Am besten Du holst vor dem copy() erstmal alle Variablen aus dem $_FILE-Array heraus, die wichtig sind:
Ist zwar nicht notwendig, aber damit lässt sich leichter arbeiten ;-)
Und anstelle des copy() kannst Du dann das verwenden:
<gruß thj>
Am besten Du holst vor dem copy() erstmal alle Variablen aus dem $_FILE-Array heraus, die wichtig sind:
$name = $_FILES['probe']['name'];
$type = $_FILES['probe']['type'];
$size = $_FILES['probe']['size'];
$tempname = $_FILES['probe']['tmp_name'];Ist zwar nicht notwendig, aber damit lässt sich leichter arbeiten ;-)
Und anstelle des copy() kannst Du dann das verwenden:
move_uploaded_file ($tempname, $name);<gruß thj>
Antwort 7 von TheHappyJoker
P.S.: Das sind nur die Rohquellen, das Anpassen musst Du schon selbst (hätte ja auch das ganze Script posten können, aber Du willst es ja unbedingt selbst machen ;-)
<gruß thj>
<gruß thj>
Antwort 8 von FrozenHeat
ne is ja auch richtig so auf jeden fall dank ich dir...kann es aber sein das er die datei dann immer wieder überkopiert?

