D Dr-man Medlem sedan juli 2002 732 inlägg Frågan 14 aug. 2009 20:41 #1 Jag försöker ladda upp fler bilder på samma gång med hjälp av flera input-fält. Men får följande felmeddelande med koden nedanför.
Variable passed to each() is not an array or object in /var/www/fs1/6/admin/edit2.php on line 86
while(list($key,$value) = each($_FILES['userfile']['name']))
if (is_uploaded_file($_FILES['userfile']['tmp_name'])){
if (eregi(".jpg$", $_FILES['userfile']['name'])){
if (file_exists($_FILES['userfile']['name'])){
echo " <script type=\"text/javascript\">
alert('Det finns redan en bild med samma namn!');
</script>";
}
else{
$imagefile = $dir."/".$_FILES['userfile']['name'];
$thumb = $dir."/".$id.$_FILES['userfile']['name'];
$imagefile2 = $_FILES['userfile']['name'];
copy($_FILES[userfile][tmp_name][$key], $value);
// move_uploaded_file($_FILES['userfile']['tmp_name'], $imagefile);
// imagecreatethumb($thumb, $imagefile, NULL, NULL, NULL, 7;
$picture=$imagefile2;
$query = "insert into photos(photoid, picture, pictext, pictextfin, photoidfin) values('".$photoid."','".$picture."','".$pictext."','".$pictextfin."','".$photoidfin."')";
mysql_query($query,$link);
$query = "select * from photos where photoid='$photoid'";
$result4 = mysql_query($query,$link);
$query2 = mysql_query("select * from photos where photoid='$photoid'");
$result5 = mysql_num_rows($query2);
}
}
else{
echo " <script type=\"text/javascript\">
alert('Det går endast att ladda upp bilder i jpeg-format!');
</script>";
}
}
?>
Kan nån hjälpa?
E erciz Medlem sedan maj 2001 1 826 inlägg Precis som ditt felmeddelande säger så är ju argumentet till each() inte en array.
D Dr-man Medlem sedan juli 2002 732 inlägg Jag har gjort om koden, nu får jag inga felmeddelanden, men tyvärr så flyttas inga bilder över till servern. Kan nån hjälpa?
Här är koden för själva överflyttningen av bilder.
foreach ($_FILES["userfile"]["error"] as $key => $error) {
if ($error == UPLOAD_ERR_OK) {
if (file_exists($_FILES['userfile']['name'])){
echo " <script type=\"text/javascript\">
alert('Det finns redan en bild med samma namn!');
</script>";
}
$imagefile = $dir."/".$_FILES['userfile']['tmp_name'][$key];;
$name = $_FILES["userfile"]["name"][$key];
move_uploaded_file($tmp_name, "data/$name");
//move_uploaded_file($_FILES['userfile']['tmp_name'], "data/$imagefile");
$imagefile2 = $_FILES['userfile']['name'][$key];
$picture=$imagefile2;
$query = "insert into photos(photoid, picture, pictext, pictextfin, photoidfin) values('".$photoid."','".$picture."','".$pictext."','".$pictextfin."','".$photoidfin."')";
echo "Query", $query;
mysql_query($query,$link);
}
$query = "select * from photos where photoid='$photoid'";
$result4 = mysql_query($query,$link);
$query2 = mysql_query("select * from photos where photoid='$photoid'");
$result5 = mysql_num_rows($query2);
}
}
Här är koden för själva formuläret.
<?php
$max_no_img=10;
echo "<form method=post action=edit2.php enctype='multipart/form-data'>";
echo "<table border='0' width='400' cellspacing='0' cellpadding='0' align=center>";
for($i=1; $i<=$max_no_img; $i++){
echo "<tr><td>Images $i</td><td>";?>
<input type="file" name="userfile[]"><br /> <br /></td></tr>
<?php }?>
<input type="hidden" value="1" name="acheck">
<input type="hidden" value="<?php echo $data3["id"] ?>" name="edit">
<input type="hidden" value="<?php echo $data3["photoid"] ?>" name="photoid">
<input type="hidden" value="<?php echo $data3["description"] ?>" name="description">
<input type="hidden" value="<?php echo $data3["photoidfin"] ?>" name="photoidfi">
<input type="hidden" value="<?php echo $data3["descriptionfin"] ?>" name="descriptionfin">
<tr><td colspan=2 align=center><input type=submit value='Lägga till'></td></tr>
</form> </table>
Du använder move_uploaded_file tillsammans med en variabel $tmp_name , men du sätter aldrig något värde på $tmp_name ..
Danne V Medlem sedan aug. 2006 8 090 inlägg Jag lägger mig i lite.
Det finns en hel del färdiga skripter och tutorials därute:
http://clusty.com/search?input-form=clusty-simple&v%3Asources=webplus&query=php+multiple+file+upload
Donade själv med detta för nåt år sen. Under projektets gång snubblade jag på några andra varianter med java applets som kanske kan intressera. Bifogas....
När vi ändå är inne på tips kan jag rekommendera den här som jag blivit fullständigt kär i:
http://digitarald.de/project/fancyupload/3-0/showcase/photoqueue/
Riktigt snyggt, man kan t.o.m ta bort/lägga till filer under tiden de laddas upp.
E erciz Medlem sedan maj 2001 1 826 inlägg
MickeA.com skrev:
När vi ändå är inne på tips kan jag rekommendera den här som jag blivit fullständigt kär i:
http://digitarald.de/project/fancyupload/3-0/showcase/photoqueue/
Riktigt snyggt, man kan t.o.m ta bort/lägga till filer under tiden de laddas upp.
Åh, den där var ju grym ;)
D Dr-man Medlem sedan juli 2002 732 inlägg
MickeA.com skrev:
När vi ändå är inne på tips kan jag rekommendera den här som jag blivit fullständigt kär i:
http://digitarald.de/project/fancyupload/3-0/showcase/photoqueue/
Riktigt snyggt, man kan t.o.m ta bort/lägga till filer under tiden de laddas upp.
Fungerar detta också med Vista IE 8?
Dr-man skrev:
Fungerar detta också med Vista IE 8?
Varför provar du inte själv istället för att fråga? Länken finns ju där...