ERLEDIGT
JA
JA
ANTWORTEN
17
17
ZUGRIFFE
1083
1083
EMPFEHLEN
-
14.05.06 15:41 #1
- Registriert seit
- Feb 2003
- Ort
- Österreich / Feldkirch
- Beiträge
- 135
Hallo,
bis jetzt hat das Script immer nur ein Bild hochgeladen und einen Ordner erstellt. Nun will ich ,dass man mehrere Bilder hochladen kann. Das funktioniert aber nicht. Es liegt wahrscheinlich an check.php. Denn dort bekomme ich immer die Meldung falscher Dateityp. Wisst ihr was ich da falsch mache? PS: Bin noch Anfänger.
Hier mal der Code der einzellnen Dateien:
create_alb.php --> Erster Schritt, Benutzer gibt den Albumnamen ein und wieviel Bilder er hochladen will
upload.php --> Es werden die Uploadfelder erzeugt und ein Ordner Namens $AlbumnamePHP-Code:<?php
include ("../../head.php");
?>
<body>
<form action="upload.php" method="POST">
Geben Sie den Namen des Albumbs ein: <input type="text" name="Albumname"></input><br/>
Geben Sie an wieviel Bilder Sie hochladen wollen:<input name="anzahlderbilder" type="text" size="4" maxlength="2">
</input><br/>
<input type=submit value="Submit">
</form>
</body>
</html>
check.php ->Hochladen in Ordner $AlbumnamePHP-Code:<?php
include ("../../head.php");
?>
Bilder für das Fotoalbum
<?php
echo " <b>$Albumname</b> uploaden:\n";
echo '<form name="form1" method="post" action="check.php" enctype="multipart/form-data">';
for ($i=0; $i < $anzahlderbilder; $i++)
{
echo '<input type="file" name="imagefile'."$i".'">';
echo '<br/>';
}
echo '<input type="submit" name="Submit" value="Submit">';
mkdir ("$Albumname", 0777);
?>
<input type="hidden" name="Albumname" value="<?=$_POST["Albumname"]?>" />
<input type="hidden" name="Albumname" value="<?=$_POST["anzahlderbilder"]?>" />
</form>
</body>
</html>
Demo:PHP-Code:<?php
include ("../../head.php");
echo '<body>';
echo '<br />';
//Upload verarbeiten
if(isset( $Submit ))
{
//If the Submitbutton was pressed do:
if ($_FILES['imagefile']['type'] == "image/gif" || $_FILES['imagefile']['type'] == "image/jpeg" || $_FILES['imagefile']['type'] == "image/pjpeg")
{
for ($i=0; $i < $anzahlderbilder; $i++)
{
move_uploaded_file ($_FILES['imagefile'."$anzahlderbilder"]['tmp_name'], "/home/webpages/lima-city/kappl/html/images/upload/$Albumname/".$_FILES['imagefile'."$anzahlderbilder"]['name']) or die ("Konnte nicht kopiert werden!");
echo "";
echo "Name: ".$_FILES['imagefile']['name']."\n";
echo "Size: ".$_FILES['imagefile']['size']."";
echo "Type: ".$_FILES['imagefile']['type']."";
echo " Copy Done....";
}
}
else
{
echo "<br><br>";
echo "Datei konnte nicht hochgeladen werden, Falscherdateityp (".$_FILES['imagefile']['name'].")<br>";
}
}
echo '<br />';
//Zur Fehlerquellen überprüfung
//echo "";
//var_dump($Albumname);
//var_dump($_POST["Albumname"]);
//var_dump($_POST);
echo '<br />';
echo '<a href="'."$Albumname".'/" title="Ins erstellte Album wechseln">Weiter zu den upgeloadeten Bildern</a>';
echo '<br />';
echo '<br />';
include ("../footer.php");
?>
http://kappl.milten.lima-city.de/Anna/images/upload/
mfg BriefkastenGeändert von Briefkasten (14.05.06 um 15:43 Uhr)
-
...soweit ich sehe, existiert dort kein FileUpload-Feld namens "imagefile"if ($_FILES['imagefile']['type'] ==
...ist register_globals auf "On"if(isset( $Submit ))
Da frag ich mich langsam ernsthaft, wieviel Jahrhunderte es dauern wird, bis auch der letzte kapiert hat, wie man die Superglobals anzusprechen hat...das ist schliesslich seit mittlerweile 6 Jahren so, dass register_globals standardmässig OFF ist
-
Die Variable $anzahlderbilder in der Datei check.php ist nicht definiert. Dadurch wird die Schleife nicht oftgenug durchgelaufen. Ich vermute mal, dass die Namensgebung der Hidden- Input- Felder in upload.php inkorrekt ist und das das eine Feld, welchem du das Value $_POST["anzahlderbilder"] auch dementsprechend $anzahlderbilder heißen muss und nicht Albumname.
Doch existiert in upload.php in der for- Schleife.
Zitat von Sven Mintel
Und noch ein weiterer Tip, versuch die Überprüfung des Types mal mit mime_content_type(), sprichCode php:1
mime_content_type($_FILES["imagefile"]["tmp_name"]);
Geändert von Tucker (14.05.06 um 16:06 Uhr)
Wenn man der freudschen psychosexuellen Theorie über Eros und Tanatos glaubt, bleibt eine unbeantwortbare Frage: Was hat Programmieren mit der Libido und sexueller Befriedigung zu tun?
-
Du steckst die php Variable $Albumname in einen String ...
so sollte es funktionieren:PHP-Code:move_uploaded_file ($_FILES['imagefile'."$anzahlderbilder"]['tmp_name'], "/home/webpages/lima-city/kappl/html/images/upload/$Albumname/".$_FILES['imagefile'."$anzahlderbilder"]['name']) or die ("Konnte nicht kopiert werden!");
cheerio,PHP-Code:move_uploaded_file ($_FILES['imagefile'."$anzahlderbilder"]['tmp_name'], "/home/webpages/lima-city/kappl/html/images/upload/".$Albumname."/".$_FILES['imagefile'."$anzahlderbilder"]['name']) or die ("Konnte nicht kopiert werden!");
anna
P.S. Ist das hier das Resultat von cut, stick, paste, shake, rattle and roll? *grins*History will be kind to me, for I intend to write it
Winston Churchill
-
14.05.06 16:31 #5
Hallo!
Sven hat recht, es gibt imagefile1, imagefile2, imagefile3..... usw., denn in der for-Scheife wird imagefile durchnummeriert.
Und in der check.php wird lediglich nach $_FILES['imagefile']['type'] überprüft..... dann kann es ja auch nicht funktionieren.
@Sven, Du hast vergessen von den 6 Jahren den Zeitraum abzuziehen, wo die Hoster register_globals auf ON gestellt haben.
Gruss Dr DauGeändert von Dr Dau (14.05.06 um 16:34 Uhr)
Schri-Schra-Schrödi *g*
mehrspaltiges/zeiliges Seitenlayout mit DIV's und CSS
Dinge, die mit Tabellen besser klappen als mit CSS
Ausgabe von Datum/Zeit unabhängig von der Server Zeitzone [php]
Meine Links zum Thema Linux (Last update: 29.10.2011)
Kein Busen ist so flach wie das Niveau dieser Party!
----
Alte Weisheit: wer uns in den Arsch kriecht wird beschissen!
----
Ich habe 3 Kinder und kein Geld!
Warum kann ich nicht keine Kinder haben und 3 Geld?! (Homer Jay Simpson)
-
Du solltest die das PHP- Handbuch mal durchlesen. Es spielt keine Rolle ob du $dateiname="$datei" nutzt oder $dateiname=$datei. Alles was in Dubblequotes steht an Variablen wird kompiliert und interpretiert. Somit kann dort der Fehler nicht liegen.
Zitat von aphaean

Stimmt, du hast recht. Mein Fehler, da ich ihm erste den Vorschlag machen wollte, die Inputfelder mit imagefile[] zu betiteln. Wäre man so vorgegangen hätte die Überprüfung gestimmt, da das Array $imagefile dann ja vorhanden wäre. Sorry
Zitat von Dr Dau
Wenn man der freudschen psychosexuellen Theorie über Eros und Tanatos glaubt, bleibt eine unbeantwortbare Frage: Was hat Programmieren mit der Libido und sexueller Befriedigung zu tun?
-
Was weiss den ich...vor 6 Jahren hatte ich noch nichtmal einen Computer(wollte mit diesem neumodischen Teufelszeug auch nichts zu tun haben
Zitat von Dr Dau
), ich wollt heut halt nur mal am Sonntagnachmittag ein wenig gepflegt klugsch****en
-
14.05.06 16:48 #8
ROFL
Aber wo wir schon dabei sind, mir stösst <?= ?> auf.
Wenn short_open_tag in der php.ini deaktiviert wird funktioniert es nicht mehr.
Und um <?xml ?> nutzen zu können, muss short_open_tag deaktiviert sein.
Andernfalls muss <?php echo '<?xml version="1.0"'; ?> verwendet werden.
Es ist also absehbar dass short_open_tag deaktiviert wird.Schri-Schra-Schrödi *g*
mehrspaltiges/zeiliges Seitenlayout mit DIV's und CSS
Dinge, die mit Tabellen besser klappen als mit CSS
Ausgabe von Datum/Zeit unabhängig von der Server Zeitzone [php]
Meine Links zum Thema Linux (Last update: 29.10.2011)
Kein Busen ist so flach wie das Niveau dieser Party!
----
Alte Weisheit: wer uns in den Arsch kriecht wird beschissen!
----
Ich habe 3 Kinder und kein Geld!
Warum kann ich nicht keine Kinder haben und 3 Geld?! (Homer Jay Simpson)
-
15.05.06 15:03 #9
- Registriert seit
- Feb 2003
- Ort
- Österreich / Feldkirch
- Beiträge
- 135
Hi,
danke für die Hinweise. Ich hab nun alles geändert so wie ihr mir beschrieben habt.
->$anzahlderbilder=$_POST["anzahlderbilder"];
->for Schleife geändert
->statt 'imagefile' ->'imagefile'."$i"
Funktioniert aber leider immer noch nicht
hier der neue Code:
upload.php
check.phpPHP-Code:<?php
include ("../../head.php");
?>
Bilder für das Fotoalbum
<?php
echo " <b>$Albumname</b> uploaden:\n";
echo '<form name="form1" method="post" action="check.php" enctype="multipart/form-data">';
for ($i=0; $i < $anzahlderbilder; $i++)
{
echo '<input type="file" name="imagefile'."$i".'">';
echo '<br/>';
}
echo '<input type="submit" name="Submit" value="Submit">';
mkdir ("$Albumname", 0777);
?>
<input type="hidden" name="Albumname" value="<?=$_POST["Albumname"]?>" />
<input type="hidden" name="anzahlderbilder" value="<?=$_POST["anzahlderbilder"]?>" />
</form>
</body>
</html>
Das merkwürdige daran ist allerdings, dass keine Fehlermeldung mehr kommt, aber die Echos nicht ausgeben werden und die Bilder nicht ins verzeichniss upgeloadet werden.PHP-Code:<?php
include ("../../head.php");
echo '<body>';
echo '<br />';
$anzahlderbilder=$_POST["anzahlderbilder"];
$Albumname=$_POST["Albumname"];
echo "$anzahlderbilder";
echo "$Albumname";
//Upload verarbeiten
if(isset( $Submit ))
{
//If the Submitbutton was pressed do:
for ($i=1; $i < $anzahlderbilder; $i++)
{
if ($_FILES['imagefile'."$i"]['type'] == "image/gif" || $_FILES['imagefile'."$i"]['type'] == "image/jpeg" || $_FILES['imagefile'."$i"]['type'] == "image/pjpeg" && $_FILES['imagefile'."$i"]['type'])
{
move_uploaded_file ($_FILES['imagefile'."$i"]['tmp_name'], "/home/webpages/lima-city/kappl/html/images/upload/".$Albumname."/".$_FILES['imagefile'."$i"]['name']) or die ("Konnte nicht kopiert werden!");
echo "Name: ".$_FILES['imagefile'."$i"]['name'];
echo "Size: ".$_FILES['imagefile'."$i"]['size']."";
echo "Type: ".$_FILES['imagefile'."$i"]['type']."";
echo " Copy Done....";
}
else
{
echo "<br><br>";
echo "Datei konnte nicht hochgeladen werden, Falscherdateityp (".$_FILES['imagefile'."$i"]['name'].")<br>";
}
}
}
echo '<br />';
//Zur Fehlerquellen überprüfung
//echo "";
//var_dump($Albumname);
//var_dump($_POST["Albumname"]);
//var_dump($_POST);
echo '<br />';
echo '<a href="'."$Albumname".'/" title="Ins erstellte Album wechseln">Weiter zu den upgeloadeten Bildern</a>';
echo '<br />';
echo '<br />';
include ("../footer.php");
?>
Diese Echos sollten kommen:
Tun Sie aber nicht, hat jemand ne Idee?PHP-Code:echo "Name: ".$_FILES['imagefile'."$i"]['name'];
echo "Size: ".$_FILES['imagefile'."$i"]['size']."";
echo "Type: ".$_FILES['imagefile'."$i"]['type']."";
echo " Copy Done....";
mfg Briefkasten
-
Lesen!
Zitat von Tucker
Hab ich schonmal geschrieben.
Wenn man der freudschen psychosexuellen Theorie über Eros und Tanatos glaubt, bleibt eine unbeantwortbare Frage: Was hat Programmieren mit der Libido und sexueller Befriedigung zu tun?
-
15.05.06 16:39 #11Er hat wohl noch mehr "überlesen".
Zitat von Tucker

@Briefkasten, führe mal diesen Code aus und poste das Ergebnis:
PHP-Code:<?php
if(ini_get("register_globals") == 0) {
echo "register_globals = OFF<br>";
} else {
echo "register_globals = ON<br>";
}
if(ini_get("safe_mode") == 0) {
echo "safe_mode = OFF<br>";
} else {
echo "safe_mode = ON<br>";
}
if(ini_get("short_open_tag") == 0) {
echo "short_open_tag = OFF<br>";
} else {
echo "short_open_tag = ON<br>";
}
?>Geändert von Dr Dau (17.05.06 um 19:35 Uhr)
Schri-Schra-Schrödi *g*
mehrspaltiges/zeiliges Seitenlayout mit DIV's und CSS
Dinge, die mit Tabellen besser klappen als mit CSS
Ausgabe von Datum/Zeit unabhängig von der Server Zeitzone [php]
Meine Links zum Thema Linux (Last update: 29.10.2011)
Kein Busen ist so flach wie das Niveau dieser Party!
----
Alte Weisheit: wer uns in den Arsch kriecht wird beschissen!
----
Ich habe 3 Kinder und kein Geld!
Warum kann ich nicht keine Kinder haben und 3 Geld?! (Homer Jay Simpson)
-
17.05.06 14:48 #12
- Registriert seit
- Feb 2003
- Ort
- Österreich / Feldkirch
- Beiträge
- 135
Hi,
so habs mit mime auch probiert, geht leider nicht.
Hier die Daten:
register_globals = OFF
safe_mode = ON
short_open_tag = ON
http://kappl.milten.lima-city.de/Ann...ad/phpinfo.php
Ich hab jetzt die Überprüfung (if(..)) der hochgeladeten Dateien ganz weggelassen, sodass man alles hochladen kann. Anscheinend funktioniert das generelle hochladen der Dateien nicht, denn obwohl die überprüfung weg ist wird die Datei nicht hochgeladen. Wenn ich eine Datei hochlade bekomme ich die Meldung:"Datei erfolgreich hochgeladen"
Eigentlich sollten aber noch ein paar echos ausgeben werden und zwar die:
Hier der jetztige Code von check.php:PHP-Code:echo "Name: ".$_FILES['imagefile'."$i"]['name'];
echo "Size: ".$_FILES['imagefile'."$i"]['size']."";
echo "Type: ".$_FILES['imagefile'."$i"]['type']."";
echo " Copy Done....";
echo "<br><br>";
echo "Datei konnte nicht hochgeladen werden, Falscherdateityp (".$_FILES['imagefile'."$i"]['name'].")<br>";
Mit if(isset( $_POST['Submit'] )) Funktionierts leider auch nicht.PHP-Code:<?php
include ("../../head.php");
echo '<body>';
echo '<br />';
$anzahlderbilder=$_POST["anzahlderbilder"];
$Albumname=$_POST["Albumname"];
echo "$anzahlderbilder";
echo "$Albumname";
//Upload verarbeiten
if(isset( $_POST['Submit'] ))
{
//If the Submitbutton was pressed do:
for ($i=1; $i < $anzahlderbilder; $i++)
{
move_uploaded_file ($_FILES['imagefile'."$i"]['tmp_name'], "/home/webpages/lima-city/kappl/html/images/upload/".$Albumname."/".$_FILES['imagefile'."$i"]['name']) or die ("Konnte nicht kopiert werden!");
echo "Name: ".$_FILES['imagefile'."$i"]['name'];
echo "Size: ".$_FILES['imagefile'."$i"]['size']."";
echo "Type: ".$_FILES['imagefile'."$i"]['type']."";
echo " Copy Done....";
echo "<br><br>";
echo "Datei konnte nicht hochgeladen werden, Falscherdateityp (".$_FILES['imagefile'."$i"]['name'].")<br>";
}
}
echo '<br />';
//Zur Fehlerquellen überprüfung
//echo "";
//var_dump($Albumname);
//var_dump($_POST["Albumname"]);
//var_dump($_POST);
echo '<br />';
echo '<a href="'."$Albumname".'/" title="Ins erstellte Album wechseln">Weiter zu den upgeloadeten Bildern</a>';
echo '<br />';
echo '<br />';
include ("../footer.php");
?>
Geändert von Briefkasten (17.05.06 um 15:50 Uhr)
-
Ich dachte, es hätte schon wer geschrieben...anscheinend aber doch nicht...
prüfe den Grafik-Typ per getimagesize()
der Grund(auch wenn ich das schon dutzende Male im Board geschrieben habe).... der MIME-Type eines JPG ist abhängig von dem Programm, mit dem er erstellt wurde.
Es gibt da bpsw. jpg, jpeg, jpe, jfif
mit getimagesize ermittelst du nicht den MIME-Type, sondern simpel...ob es ein JPG(alle diversen MIME-Types eingeschlossen) ist...oder nicht.
-
...übrigens...da register_globals OFF ist....
...darauf habe ich bereits in meiner ersten Antwort hingewiesen, dass das dann so nicht gehtCode :1
if(isset( $Submit ))

....
Code :1
if(isset( $_POST['Submit'] ))
-
17.05.06 19:34 #15
Eigentlich war ich der Meinung dass bei meinem Codeschnippsel alles OK ist..... aber da hat sich doch irgendwie ein Schreibfehler eingeschlichen (wird gleich korregiert).
Da Briefkasten ja einen Link zur phpinfo gepostet hat, stelle ich mal klar.....
register_globals=ON
safe_mode=ON
short_open_tag=ON
Zurück zum Thema.
War da nicht mal etwas mit move_uploaded_files() vs. copy() bei safe_mode=ON?Schri-Schra-Schrödi *g*
mehrspaltiges/zeiliges Seitenlayout mit DIV's und CSS
Dinge, die mit Tabellen besser klappen als mit CSS
Ausgabe von Datum/Zeit unabhängig von der Server Zeitzone [php]
Meine Links zum Thema Linux (Last update: 29.10.2011)
Kein Busen ist so flach wie das Niveau dieser Party!
----
Alte Weisheit: wer uns in den Arsch kriecht wird beschissen!
----
Ich habe 3 Kinder und kein Geld!
Warum kann ich nicht keine Kinder haben und 3 Geld?! (Homer Jay Simpson)
Ähnliche Themen
-
Mehrere Bilder hochladen - CakePHP
Von regi im Forum PHPAntworten: 1Letzter Beitrag: 08.06.10, 16:56 -
Mehrere Bilder aus DB anzeigen funktioniert nicht wie gewünscht
Von Vetterli99 im Forum PHPAntworten: 4Letzter Beitrag: 04.08.08, 16:58 -
Bild hochladen funktioniert nicht! Weiße Seite!
Von Fehlerteufel im Forum PHPAntworten: 13Letzter Beitrag: 14.01.07, 19:27 -
Mehrere Bilder gleichzeizig hochladen
Von Hafke im Forum PHPAntworten: 7Letzter Beitrag: 15.06.06, 21:51 -
Zeigt bilder nach hochladen nicht an..
Von besk im Forum HTML & XHTMLAntworten: 3Letzter Beitrag: 27.02.04, 20:00





Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren