webForumDet fria alternativet

Hur ladda upp flera bilder samtidigt?

PHP

16 svar · 1 338 visningar · startad av Ken

Medlem sedan mars 2004252 inlägg
Frågan#1

Denna kod fungerar utmärkt, men ända problemet är att den kan endast ladda upp en bild i taget. Går det att göra så att man kan ladda upp flera bilder samtidigt?

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'];
      move_uploaded_file($_FILES['userfile']['tmp_name'], $imagefile);
      imagecreatethumb($thumb, $imagefile, NULL, NULL, NULL, 7;
      $picture=$imagefile2;
      $query = "insert into photos(photoid, picture, pictext) values('".$photoid."','".$picture."','".$pictext."')";
      echo $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);
    }
  }
  else{
    echo " <script type=\"text/javascript\">
    alert('Det går endast att ladda upp bilder i jpeg-format!');
    </script>";
  }
 }
?>

Se här ser formuläret ser ut.

Sätta till bilder<br /> 
<form method="post" action="edit2.php" enctype="multipart/form-data"> 
<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="file" name="userfile"><br /> <br /> 
<input type="submit" value="Skicka" name="addpic"> 
</form>

Nu menar jag alltså själva rutan där man väljer bilderna, att hur gör man så att man kan välja där flera bilder samtidigt?

Medlem sedan aug. 20068 090 inlägg
#2

Ken skrev:

Nu menar jag alltså själva rutan där man väljer bilderna, att hur gör man så att man kan välja där flera bilder samtidigt?

Går inte om du inte använder en java applet.
Det enda sättet är att lägga upp flera "uppladdningsfält". Men det blir fortfarande bara en fil per fält.

Jag använde/testade en sån där applet i våras (gratis). Om du vill kan jag försöka hitta den. Men en applet är ju alltså ett "program" som startas av webbläsaren och jag vet inte hur olika datorer reagerar på det....

Medlem sedan mars 2004252 inlägg
#3

Om du råkar hitta den, så är jag intresserad!

Medlem sedan maj 2005704 inlägg
#4

Jag skulle nog föredra en Flash lösning istället för en applet då det är tillgängligt för fler användare.

Det finns mängder av lösningar för det, t.ex. swfupload:
swfupload.mammon.se (servern verkar dock nere just nu)

Googla på "flash multiple file upload" annars så hittar du en del att välja på.

Medlem sedan aug. 20068 090 inlägg
#5

Ken skrev:

Om du råkar hitta den, så är jag intresserad!

Kan just nu inte hitta den jag gillade bäst (typiskt, va?), men hade sparat en flash-variant som är gratis (med reklam tror jag) eller kostar stålar (utan reklam). Den var OK: http://www.element-it.com/MultiPowUpload.aspx

Hade också sparat en php-upload (se kod nedan) med flera uppladdningsknappar.

Sen gjorde jag ett snabbt sökoch hitade några appletar som kanske funkar:
http://jupload.sourceforge.net/
http://www.javaatwork.com/java-upload-applet/details.html
http://www.javazoom.net/applets/jclientupload/jclientupload.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
<meta name="MSSmartTagsPreventParsing" content="true" />
<meta http-equiv="imagetoolbar" content="no" />
<link rel="shortcut icon" href="http://www.mysite.com/favicon.ico" />
</head>
<body>
<?php
/***********************************************
* Snippet Name : File Uploader *
* Scripted By : Hermawan Haryanto *
* Website : http://hermawan.com *
* Email : hermawan@codewalkers.com *
* License : GPL (General Public License) *
***********************************************/
$numoffile = 5;
// Fix path of your file to be uploaded, don't forget to CHMOD 777 to this folder
$file_dir = "/home/webs/dmonster.com/subdomain/files/";
if ($_POST) {
for ($i=0;$i<$numoffile;$i++) {
if (trim($_FILES['myfiles']['name'][$i])!="") {
$newfile = $file_dir.$_FILES['myfiles']['name'][$i];
move_uploaded_file($_FILES['myfiles']['tmp_name'][$i], $newfile);
$j++;
}
}
}
if (isset($j)&&$j>0) print "Your file(s) has been uploaded.<br>";
print "<form method='post' enctype='multipart/form-data'>";
for($i=0;$i<$numoffile;$i++) {
print "<input type='file' name='myfiles[]' size='30'><br>";
}
print "<input type='submit' name='action' value='Upload'>";
print "</form>";
?>

</body>
</html>
Medlem sedan juni 20006 031 inlägg
#6

Man kan ladda upp flera bilder samtidigt med php.
Problemet är väl att du skickar med dina hidden fält med data för bilden.
Lite svårt att skicka med data och veta vilken bild som datan tillhör.

Medlem sedan mars 2004252 inlägg
#7

Har du något bättrre lösning för detta?

Medlem sedan aug. 20068 090 inlägg
#8

Pedda skrev:

Man kan ladda upp flera bilder samtidigt med php.
Problemet är väl att du skickar med dina hidden fält med data för bilden.
Lite svårt att skicka med data och veta vilken bild som datan tillhör.

Njae... jag kan inget om php, men jag tror du missförstod trådskaparens fråga (eller kanske jag missförstod?).

Det handlar iofs inte om att ladda upp fler filer samtidigt. Det är inga problem. Man bara skapar fler "välj fil"-knappar. En för varje fil som ska upp. Åsså får användaren välja en i taget. När han/hon valt sina filer, så klickar han/hon på uppladdningsknappen och alla laddas upp snyggt och fint.

Det handlar om att välja ALLA filer samtidigt i samma navigeringsfönster och ladda upp i "batch". Alltså, man klickar knapp "välj filer" navigerar dit man ska, väljer en med Ctrl eller Cmnd nere, väljer nästa på samma sätt osv. Fortfarande i samma fönster...

Men det kanske var jag som missuppfattade..... :r

Medlem sedan feb. 20041 816 inlägg
#9

Blixtsystems skrev:

Jag skulle nog föredra en Flash lösning istället för en applet då det är tillgängligt för fler användare.

Det finns mängder av lösningar för det, t.ex. swfupload:
swfupload.mammon.se (servern verkar dock nere just nu)

Googla på "flash multiple file upload" annars så hittar du en del att välja på.

Coolt, trodde inte att det gick med Flash men jag måste ha sökt som en kratta. Hur är det med mappar - går det att ordna så att en hel mapp kan laddas upp (med Flash)? Hmm, det kanske var det jag sökte på...

Medlem sedan maj 2005704 inlägg
#10

@dAEk
Har inte testat men är 99% säker på att det inte är möjligt att ens välja en mapp i utforskar fönstret.

Medlem sedan mars 2004252 inlägg
#11

Danne V skrev:

Njae... jag kan inget om php, men jag tror du missförstod trådskaparens fråga (eller kanske jag missförstod?).

Det handlar iofs inte om att ladda upp fler filer samtidigt. Det är inga problem. Man bara skapar fler "välj fil"-knappar. En för varje fil som ska upp. Åsså får användaren välja en i taget. När han/hon valt sina filer, så klickar han/hon på uppladdningsknappen och alla laddas upp snyggt och fint.

Det handlar om att välja ALLA filer samtidigt i samma navigeringsfönster och ladda upp i "batch". Alltså, man klickar knapp "välj filer" navigerar dit man ska, väljer en med Ctrl eller Cmnd nere, väljer nästa på samma sätt osv. Fortfarande i samma fönster...

Men det kanske var jag som missuppfattade..... :r

Du uppfattade rätt!

Medlem sedan feb. 20041 816 inlägg
#12

Blixtsystems skrev:

@dAEk
Har inte testat men är 99% säker på att det inte är möjligt att ens välja en mapp i utforskar fönstret.

Synd. :(
Jag har undersökt möjligheten att på ett enkelt och användarvänligt sätt ladda upp mappar och filer (mha synliga thumbnails). En lösning baserad på Flash skulle föredras över en Applet och/eller ActiveX-historia men det är som det är och då får det väl bli så ändå. Man får leva med att det tar 127 år för Appleten att starta, åtminstone tills dess att Java Kernel släpps officiellt.

Medlem sedan feb. 200230 inlägg
#13

Varför inte tillåta uppladdning av zip-filer som du extraherar när dom är uppladdade?

Medlem sedan feb. 20041 816 inlägg
#14

Därför att det inte är tillräckligt enkelt för slutanvändarna. En del vet inte vad en zip-fil är för nåt eller hur man skapar en. I mitt fall handlar det om bildfiler som skall laddas upp och då är det ganska sjyst att kunna se vilka bilder som är på väg att laddas upp i form av thumbnails.

Medlem sedan nov. 20016 480 inlägg
#15

Danne V skrev:

Kan just nu inte hitta den jag gillade bäst (typiskt, va?)...

Har du hittat den? :) Eller någon som har tips på andra bra gratis php-applikationer för att ladda upp en drös filer samtidigt?

Tack!

Medlem sedan mars 20074 inlägg
#16

*bump*

Någon som har något bra tips för flera filer?
Eller är det flash som gäller?

Medlem sedan feb. 20041 816 inlägg
#17

Aurigma har en (Java) applet som verkar rätt najs. Jag labbade lite med den för ett projekt på jobbet men vi använde den aldrig "på riktigt". Nackdelen är att det krävs att klienterna har Java installerat och det är tyvärr inte riktigt lika vanligt som t.ex. Flash. Har du möjlighet att ställa krav kanske det kan vara ett alternativ ändå? Fast de som använt den och råkat ut för problem är inte riktigt lika positiva, om man säger så. ;)
Länk: http://www.webmasternetwork.se/f12t27202st0_hl.html

Det jag tycker är rätt sjyst är att man kan välja en mapp att ladda upp, och att man kan skapa thumbnails på klientsidan och på så vis minska loaden på servern. Det hade varit användbart i vårt fall där det är högupplösta bilder som hanteras.

272 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
134 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
134 ms — ändringar (db)