|
|
|
|
Suche Bilder-Upload Script |
SpL!T
Junior Member
Dabei seit: 31.12.2004
Beiträge: 141
|
|
Suche Bilder-Upload Script |
|
Huhu,
Suche ein Script (php) mit dem man Bilder auf einen Webspace hochladen kann. Kann mir da jemand helfen, oder sagen, wie man so etwas vllt selber machen kann?
|
|
10.03.2006 12:53 |
|
|
gandalf
der mit ohne
Dabei seit: 06.01.2002
Beiträge: 2.099
Herkunft: Mittelerde
|
|
Versuche es mal mit einer Google-suche. ich habe meines damals auch so gefunden.
Was muss es denn können? Authorisierung braucht es auch? Maximale Uploadgrössenkontrolle? Wenn es nur was einfaches sein soll, kann ich Dir auch meines geben, das aber auf einer Webseite frei zugänglich zu platzieren wäre Sicherheitstechnisch aber sehr gefährlich.
Gruss
gandalf
__________________
Kein Mensch ist unnütz, er kann immer noch als schlechtes Vorbild dienen
|
|
11.03.2006 17:46 |
|
|
SpL!T
Junior Member
Dabei seit: 31.12.2004
Beiträge: 141
Themenstarter
|
|
Zitat: |
Original von gandalfWenn es nur was einfaches sein soll, kann ich Dir auch meines geben, das aber auf einer Webseite frei zugänglich zu platzieren wäre Sicherheitstechnisch aber sehr gefährlich.
Gruss
gandalf |
Wäre wirklich sehr nett. Da ich das ganze eh nur für ein paar Kumpels freischalte ist das Sicherheitsproblem nicht vorhanden
|
|
12.03.2006 14:42 |
|
|
LX
El Comandante en Jefe
Dabei seit: 25.11.2001
Beiträge: 5.372
Herkunft: Berliner Bronx
|
|
Mal oben genanntes Script korrigiert (damit die Fehlererkennung auch was bringt
) und mit dem dazugehörigen Formular:
php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
|
[...]
<?php
if ( array_key_exists ( 'upload' , $_POST ) switch ( $_FILES [ 'datei' ][ 'error' ] )
{
case 0:
move_uploaded_file ( $_FILES [ 'datei' ][ 'tmp_name' ] , 'uploads/' . $_FILES [ 'datei' ][ 'name' ] );
echo 'Die Datei ' . $_FILES [ 'datei' ][ 'name' ] . ' wurde erfolgreich hochgeladen!';
break;
case 1:
echo 'Die Datei überschreitet die in php.ini festgelegte Maximalgröße.';
break;
case 2:
echo 'Die Datei überschreitet die im Formular angegebene Maximalgröße.';
break;
case 3:
echo 'Die Datei wurde nur teilweise hochgeladen. Bitte nochmal versuchen...';
break;
case 4:
echo 'Es wurde keine Datei hochgeladen.';
break;
}
?>
<form action="<?php echo $PHP_SELF; ?>" method="post" enctype="multipart/form-data">
<input type="file" name="datei" />
<input type="submit" name="upload" value="hochladen" />
</form>
[...] |
|
Der Pfad (uploads/) muss wie erwähnt angepasst werden. Außerdem wird nicht geprüft, ob eine Datei bereits existiert, also würde hello.jpg beim zweiten Hochladen einer Datei mit diesem Namen ohne wenn und aber überschrieben werden.
__________________ JS-Games.de - Misled Scripting Skills Gone Mad | Meine Filmkritiken | Urban Photography
Kommt mal in den IRC-Channel: irc.eu.freenode.net | Port 6667 | #blackboard
"Ever tried. Ever failed. No matter.
Try again. Fail again. Fail better."
- Samuel Beckett
|
|
12.03.2006 21:49 |
|
|
SpL!T
Junior Member
Dabei seit: 31.12.2004
Beiträge: 141
Themenstarter
|
|
FUnktioniert wunderbar
dankeschön
kriege jedoch bei jedem Upload ein Fehler, den ich nicht kenn und mir nix sagt ^^:
Warning: move_uploaded_file() [function.move-uploaded-file]: open_basedir restriction in effect. File(/tmp/phpOmZYsL) is not within the allowed path(s): (/home/web/1164731136897904883722/:/usr/local/lib/php/:/usr/local/services/
:/usr/local/phpMyAdmin/) in /home/web/1164731136897904883722/htdocs/upload.php on line 2
Line 2 ist:
php: |
1:
|
move_uploaded_file ( $_FILES [ 'datei' ][ 'tmp_name' ] , 'uploads/' . $_FILES [ 'datei' ][ 'name' ] ); |
|
|
|
20.03.2006 16:24 |
|
|
Champus
BlackBoarder
Dabei seit: 24.03.2002
Beiträge: 1.649
Herkunft: Karlsruhe
|
|
Da stimmt was mit der Pfadangabe nicht.
Suche nach:
move_uploaded_file ( $_FILES [ 'datei' ][ 'tmp_name' ] , 'uploads/' . $_FILES [ 'datei' ][ 'name' ] );
Ersetze durch:
move_uploaded_file ( $_FILES [ 'datei' ][ 'tmp_name' ] , './uploads/' . $_FILES [ 'datei' ][ 'name' ] );
__________________ CorvusCorone -> Champus
|
|
20.03.2006 16:30 |
|
|
LX
El Comandante en Jefe
Dabei seit: 25.11.2001
Beiträge: 5.372
Herkunft: Berliner Bronx
|
|
Das dürfte keine Rolle spielen, es kann nicht auf die in /tmp gespeicherte Datei zugriffen werden.
Das Verzeichnis kann in der php.ini unter der Direktive upload_tmp_dir gesetzt werden. Mittels ini_set() dürftest du darauf auch zur Laufzeit zugreifen können, um es auf ein schreibbares Verzeichnis innerhalb des base_dirs zu setzen.
__________________ JS-Games.de - Misled Scripting Skills Gone Mad | Meine Filmkritiken | Urban Photography
Kommt mal in den IRC-Channel: irc.eu.freenode.net | Port 6667 | #blackboard
"Ever tried. Ever failed. No matter.
Try again. Fail again. Fail better."
- Samuel Beckett
|
|
20.03.2006 16:55 |
|
|
SpL!T
Junior Member
Dabei seit: 31.12.2004
Beiträge: 141
Themenstarter
|
|
Zitat: |
Original von LX
Das dürfte keine Rolle spielen, es kann nicht auf die in /tmp gespeicherte Datei zugriffen werden.
Das Verzeichnis kann in der php.ini unter der Direktive upload_tmp_dir gesetzt werden. Mittels ini_set() dürftest du darauf auch zur Laufzeit zugreifen können, um es auf ein schreibbares Verzeichnis innerhalb des base_dirs zu setzen. |
Danke für deine Antwort.
Jedoch verstehe ich beim besten Willen nicht was du meinst. Habe mir die Funktion angeschaut aber irgendwie sehe ich nicht ein, was genau zu tun ist.
mfg
|
|
18.04.2006 14:27 |
|
|
LX
El Comandante en Jefe
Dabei seit: 25.11.2001
Beiträge: 5.372
Herkunft: Berliner Bronx
|
|
Das temporäre Verzeichnis, in dem Uploads gespeichert werden, ist bei dir nicht beschreibbar. Also solltest du das mittels dieser Funktion auf ein anderes Verzeichnis legen, welches innerhalb des Webserver-Verzeichnisses liegt.
__________________ JS-Games.de - Misled Scripting Skills Gone Mad | Meine Filmkritiken | Urban Photography
Kommt mal in den IRC-Channel: irc.eu.freenode.net | Port 6667 | #blackboard
"Ever tried. Ever failed. No matter.
Try again. Fail again. Fail better."
- Samuel Beckett
|
|
18.04.2006 16:24 |
|
|
SpL!T
Junior Member
Dabei seit: 31.12.2004
Beiträge: 141
Themenstarter
|
|
Zitat: |
Original von LX
Das temporäre Verzeichnis, in dem Uploads gespeichert werden, ist bei dir nicht beschreibbar. Also solltest du das mittels dieser Funktion auf ein anderes Verzeichnis legen, welches innerhalb des Webserver-Verzeichnisses liegt. |
sry klingt jetzt vielleicht doof aber ich verstehe die funktion absolut nicht
hast du vlllt ein beispiel?
|
|
18.04.2006 18:51 |
|
|
LX
El Comandante en Jefe
Dabei seit: 25.11.2001
Beiträge: 5.372
Herkunft: Berliner Bronx
|
|
Normalerweise setzt man solche Konfigurationseinstellungen ja in der php.ini
Allerdings wirst du auf die wohl kaum direkten Zugriff haben, daher gibt es die Funktion ini_set(), mit der man zur Laufzeit eines PHP-Skriptes einige Konfigurationseinstellungen setzen kann.
Ein Beispiel für deinen Fall:
php: |
1:
|
ini_set ( 'upload_tmp_dir', '/home/web/1164731136897904883722/htdocs/tmp' ); |
|
Dieses Verzeichnis solltest du vorher natürlich anlegen und es sollte für den Webserver beschreibbar sein.
__________________ JS-Games.de - Misled Scripting Skills Gone Mad | Meine Filmkritiken | Urban Photography
Kommt mal in den IRC-Channel: irc.eu.freenode.net | Port 6667 | #blackboard
"Ever tried. Ever failed. No matter.
Try again. Fail again. Fail better."
- Samuel Beckett
|
|
18.04.2006 19:31 |
|
|
|
|
|
|