hilfe beim upload...

Catscrash

Mitglied
also folgendes Problem, ich habe hier mein HTML Datei:
HTML:
<form enctype="multipart/form-data" action="upload.php" method="post">
Kategorie: <form name="Kategorie" enctype="multipart/form-data" action="test.php" method="post">
<SELECT class="nav" style="FONT-SIZE: 13px; font-weight:bold; BACKGROUND: #ffffff; Color:#000000;" name="vari">
<OPTION value="" selected>Kategorie</OPTION>
<OPTION value="kat1" class="nav">kat1</OPTION></SELECT><br>
Bild (groß): &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="file" name="file"><br>
Bild (preview): &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="file" name="file-prev"><br>
Bild (preview opac.): &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="file" name="file-prev-opac"><br>
<input type="submit" value="hochladen">
</form>

und hier miene PHP Datei (auszug):

PHP:
<?php

$tempname = $_FILES['file']['tmp_name'];
$name = $_FILES['file']['name'];

$tempname-prev = $_FILES-prev['file-prev']['tmp_name-prev'];
$name-prev = $_FILES-prev['file-prev']['name-prev'];

$tempname-prev-opac = $_FILES-prev-opac['file-prev-opac']['tmp_name-prev-opac'];
$name-prev-opac = $_FILES-prev-opac['file-prev-opac']['name-prev-opac'];

if(empty($err)) {
    copy("$tempname", "../images/pics/people/"."$vari2"."/"."$name");
    copy("$tempname-prev", "../images/pics/people/"."$vari2"."/prev/"."$name-prev");
    copy("$tempname-prev-opac", "../images/pics/people/"."$vari2"."/prev/"."$name-prev-opac");
    echo "Die Datei $name wurde erfolgreich hochgeladen!";
    echo "Die Datei $name-prev wurde erfolgreich hochgeladen!";
    echo "Die Datei $name-prev-opac wurde erfolgreich hochgeladen!";
}
else {
    foreach($err as $error)
    echo "$error<br>";
}
?>

mit einer Datei funktioniert das alles bestens, aber wie kann ich das mit den 3 dateien machen? ich bekomme immer folgende Fehlermeldung

Parse error: parse error, unexpected '=' in /home/www/web47/html/upload/upload.php on line 26

Zeile 26 ist in dem Falle die Zeile:
PHP:
$tempname-prev = $_FILES-prev['file-prev']['tmp_name-prev'];

irgendjemand eine Idee?
 
Zuletzt bearbeitet:

Siehst Du oben das "-" Zeichen?! Das ist das Problem! Variablennamen dürfen kein solches Zeichen enthalten, weil sonst würde es ja heißen:

rechne $tempname "minus" prev ...

und damit kann PHP nix anfangen... Versuch es mal mit einem "_", also so:

$tempname_prev = $_FILES['file-prev']['tmp_name-prev'];

Außerdem ist mir folgendes nicht geläufig:

.... $_FILES-prev ....
(hab ich in obiger Zeile mal abgeändert so wie ich es kenne...)

MfG
..::SD::..
 
Zuletzt bearbeitet:
hi, also die Fehlermeldungen sind weg, aber... nur die erste datei wird wirklich hochgeladen.
Ich hatte das $_FILES-prev einfach mal so genannt, weil ich nicht wusste ob ich dieses $_FILES mehrmals verwenden kann, aber weder mit der ersten noch mit der 2. Variante (immer $_FILES) funktioniert es
 
$tempname = $_FILES['file']['tmp_name'];
$name = $_FILES['file']['name'];

$tempname-prev = $_FILES-prev['file-prev']['tmp_name-prev'];
$name-prev = $_FILES-prev['file-prev']['name-prev'];

$tempname-prev-opac = $_FILES-prev-opac['file-prev-opac']['tmp_name-prev-opac'];
$name-prev-opac = $_FILES-prev-opac['file-prev-opac']['name-prev-opac'];

Ich glaub Du musst die obigen Zeilen folgendermaßen abändern, damit es funktioniert:

PHP:
$tempname = $_FILES['file']['tmp_name']; 
$name = $_FILES['file']['name']; 

$tempname-prev = $_FILES['file-prev']['tmp_name']; 
$name-prev = $_FILES['file-prev']['name'];

$tempname-prev-opac = $_FILES['file-prev-opac']['tmp_name']; 
$name-prev-opac = $_FILES['file-prev-opac']['name'];

Versuch das mal, dann sollte es auch für die restlichen Dateien funktionieren.

MfG ..::SD::..
 
Mein Freund, in dem du einen Array anfügst
<form enctype="multipart/form-data" action="upload.php" method="post">
<input type="file[]"....

Und auslesen geht dann...

PHP:
$tempname = $_FILE['file']['tmp_name'][0];
$tempname2 = $_FILE['file']['tmp_name'][1];
...

OK?
Um PHP zu sgagen, hallo hier bits mehrere Einträge (Array) Muss im Formular ein [] angefügt werden. In diesem fall name="file[]" und nicht name="file"
 
Zuletzt bearbeitet von einem Moderator:
Zurück