• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

Hilft mir jemand ein ganz einfaches UploadSkript etwas anzupassen.

pinguSTAR

Goldparmäne
Registriert
06.11.05
Beiträge
567
Hi,

möchte gerne ein upload skript, welches aus diesen beiden dateien besteht etwas debuggen und modifizieren.

upload.html

Code:
<form enctype="multipart/form-data" action="./action.php" method="post">
 <input type="hidden" name="MAX_FILE_SIZE" value="11000000">
 Datei auswählen (max. 10MB): <input name="userfile" type="file">
 <input type="submit" value="Datei senden">
 </form>

action.php

Code:
<?php
 // In PHP kleiner als 4.1.0 sollten Sie $HTTP_POST_FILES anstatt $_FILES verwenden.
 // In PHP kleiner als 4.0.3 verwenden Sie copy() und is_uploaded_file() anstatt von
 // move_uploaded_file()

 $uploaddir = './';
 print "<pre>";
 if (move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'], $uploaddir . $HTTP_POST_FILES['userfile']['name'])) {
   print "Datei erfolgreich hochgeladen!\nZusatzinformationen:\n";
   print_r($HTTP_POST_FILES);
 } else {
   print "Irgendwas ging schief, hier sind ein paar Zuasatzinformatonen gelistet:\n";
   print_r($HTTP_POST_FILES);
 }
 ?>

soweit funktioniert das ganze auch. nur machnmal auch nicht. ich konnte bisjetzt noch nicht feststellen bei was es funktioniert und bei was nicht. ist zufällig, bis auf die tatsache das es bei ca 2mb (manchmal 1,9mb manchmal 2,0mb ) auf keinen fall funktioniert.

das zu dem fehler.

was ich gerne noch hätte wäre, das die url mitangezeigt wird. dürfte ja kein problem sein, habe da auch schon eine grobe idee für die umsetzung.

ebenso vielleicht den pfad ändern, das die uploads nicht im gleichen verzeichnis landen wie die skript dateien.

eine .htaccess-Datei wäre sicher auch nicht verkehrt. nur hab ich davon bis lang nur gehört.

ich beherrsche die grundlagen von java. und bin als nicht ganz ohne plan und leite mir die ein oder andere sache ab. etwas unterstützung wäre aber echt cool!

grüße jan
 

TaTonka

Neuer Berner Rosenapfel
Registriert
19.03.06
Beiträge
1.975
jo, es gibt in der php.ini eine einstellung namens upload_max_filesize, die ist standardmäßig auf 2mb angepasst. falls du kannst, ändere den wert.

um das hochladverzeichnis zu ändern, solltest du die variable $uploaddir anpassen, undzwar relativ zum skriptverzeichnis.
 

pinguSTAR

Goldparmäne
Registriert
06.11.05
Beiträge
567
danke für die super schnelle antwort.

ich weis das sich die php.ini hier befindet: /etc/php.ini

jedoch finde ich diesen pfad auf meinem webspace nicht.
//edit: glaube das kann nur mein provider ändern. habe sogleich auch schon eine support email geschieben.

und wegen des uploadverzeichnisses, weiß ich zwar was du mir mit relativ zu dem skiptverzeichnis sagen möchtest, jedoch habe ich keinen blassen schimmer in was ich die variable ändern muss.
 
Zuletzt bearbeitet:

drok

Klarapfel
Registriert
02.06.07
Beiträge
278
Vorab: Ich hoffe dieses Tool liegt nicht für jedermann zugänglich auf deinem Webspace.:eek:

soweit funktioniert das ganze auch. nur machnmal auch nicht. ich konnte bisjetzt noch nicht feststellen bei was es funktioniert und bei was nicht. ist zufällig, bis auf die tatsache das es bei ca 2mb (manchmal 1,9mb manchmal 2,0mb ) auf keinen fall funktioniert.

Aktiviere dann mal am besten die Fehlerausgabe, dann findet man mögliche Fehler.
error_reporting(E_ALL);

PHP ist standardmäßig so eingstellt das max. 8MB übers Formular hochgeladen werden können (post_max_size).
Um das zu überprüfen legst du einfach eine .php-Datei mit folgendem Code an und führst sie auf dem Webserver aus.
Code:
<?php
phpinfo()
?>
was ich gerne noch hätte wäre, das die url mitangezeigt wird. dürfte ja kein problem sein, habe da auch schon eine grobe idee für die umsetzung.

Welche URL ? Meinst du vllt einen Link zu der hochgeladenen Datei ?
Dazu müsste man ja nur
Code:
$domain="http://www.meinedomain.de";
echo "<a href=\"".$domain . $uploaddir . $HTTP_POST_FILES['userfile']['name']."\">".$HTTP_POST_FILES['userfile']['name']."></a>";
ausgeben.


eine .htaccess-Datei wäre sicher auch nicht verkehrt. nur hab ich davon bis lang nur gehört.

Ein Zugriffsschutz mit htaccess besteht aus 2 Dateien:

.htaccess
Code:
AuthUserFile /uploadtool/.htpasswd
AuthGroupFile /dev/null
AuthName "Authorisierung des Upload-Tools"
AuthType Basic
Diese Datei kommt in das zu schützende Verzeichnis. zB. /uploadtool

Dann gibts noch die .htpasswd welche die Benutzer und Passwörter enthält:

Code:
Mustermann:55rirG9PI9Hh
Musterfrau:55rirG9PI9Hh
Musterkind:55rirG9PI9Hh
Musterhund:55rirG9PI9Hh
Das Password wird mit crypt() generiert.

Ansonsten einfach mal im Netz suchen.


EDIT:

jedoch finde ich diesen pfad auf meinem webspace nicht.
//edit: glaube das kann nur mein provider ändern. habe sogleich auch schon eine support email geschieben.

Wenn du nur einen Webspace hast, dann kannst du die php.ini nicht ändern.
Man kann aber mit dem Befehl ini_set() verschiedene php.ini-Werte ändern.

und wegen des uploadverzeichnisses, weiß ich zwar was du mir mit relativ zu dem skiptverzeichnis sagen möchtest, jedoch habe ich keinen blassen schimmer in was ich die variable ändern muss.

Naja, du musst $uploaddir = './'; ändern. Jenachdem wo du deine Files haben willst.

Mögliche Verzeichnissstruktur:
-----/upoadtool
--------/uploads (Ordner mit den hochgeladenen Dateien)
--------action.php
Also muss deine $uploaddir="uploads" heißen.

Mögliche Verzeichnissstruktur Nr. 2:
---/upload
-----/upoadtool (Ordner mit dem Script)
--------action.php
-----/uploads (Ordner mit den hochgeladenen Dateien)
Also muss deine $uploaddir="../uploads" heißen.
 
Zuletzt bearbeitet:

pinguSTAR

Goldparmäne
Registriert
06.11.05
Beiträge
567
vielen dank!

es hat zwar nicht ganz so geklappt wie du es mir beschrieben hast, jedoch war das denkanstoß genug um den rest selbst zu machen.

werde noch einige feinheiten anpassen und euch dann mal nach eurer meinung fragen :)