webForumDet fria alternativet

Ladda upp flera bilder samtidigt!

PHP

6 svar · 567 visningar · startad av streetrobban

Medlem sedan jan. 20011 140 inlägg
Frågan#1

Halloj!

Jag håller på med en sida just nu där vi laddar upp mycket bilder till sidan via en administrationssida. Med scriptet jag tänkte använda nu måste man ladda upp bilderna separat och sedan lägga in bildernas namn i databasen, bild för bild och namn för namn. Jag undrar om det går att göra detta lättare på något sätt.

* Hur gör man för att välja hur många bilder som ska läggas in i databasen, och göra det på samma gång?

* Hur gör man för att ladda upp samtliga bilder på samma gång utan FTP? (Förutsatt att man har tillstånd att ladda upp filer på servern)

* Kan man låta ett script döpa om bilderna till det man själv väljer, och ladda upp dom på samma gång som man lägger in bildernas namn i databasen?

Tack på förhand!

Medlem sedan jan. 2000372 inlägg
#2

Du får helt enkelt göra ett bauta-formulär, antingen statiskt eller via en loop i PHP som skriver ut så många FILE-fält du vill att man max ska kunna ladda upp.

Läs lite mer om hur filuppladdning funkar i manualen så får du svar på dina övriga frågor:

http://se.php.net/manual/sv/features.file-upload.php

Medlem sedan juni 20006 031 inlägg
#3

Jag har ett liggandes påbörjat, men det skiter sig. :(

Om någon kan få ordning på det så kan streetrobban få det.

Bara en bild laddas upp, sen skriver den ut:
Array
(
[name] => bildnamn.jpg
[type] => image/pjpeg
[tmp_name] => C:\WINDOWS\TEMP\php81B4.TMP
[error] => 0
=> 11738
)

Och bildnamn.jpg är bilden som den laddar upp.

Testa scriptet

Kolla koden

Medlem sedan jan. 20011 140 inlägg
#4

Tack för era svar!

Pedda: Det är väl något sådant jag söker, och det är ju absolut en bra början. Jag kan dock inte titta på koden, något som går snett. Du kan inte ladda upp en zip-fil så kan jag kolla på koden när jag kommer hem från jobbet? Vore skitnice.

Medlem sedan juni 20006 031 inlägg
#5

Här kommer koden om det är någon som vill jobba vidare på den.

<?php
// Mappen där bilderna ska sparas, måste avslutas med / 
$mapp = "upload/";
 
// Ladda upp bilderna
if (isset($_POST['filuppladdning']))
{
	if (is_dir("$mapp")) 
	{
		// Loopa igenom alla poster i formuläret
		$keys = array_keys($_POST); 	
		$i = 0;
		while($i < count($keys))
		{ 
			if (strlen($_POST[$keys[$i]])>0) 
			{
				// Check the form 
				if(!empty($_FILES['file']['name'])) 
				{ 
					// Copy values 
					$file = $_FILES['file']; 		
					// Check what kind of a file it is  
					$filandelse = explode('.',$file['name']); 
					$sort = count($filandelse) - 1; 
					$so = $filandelse[$sort];
					// Allowed filetypes
					if (($so != 'gif') AND ($so != 'jpg') AND ($so != 'jpeg') AND ($so != 'png'))
					{   
						// Wrong filetype! 
						die("<center>Fel filtyp, måste vara jpg, jpeg, gif eller png!<br>\n
						Du försökte ladda upp en $filandelse[$sort] fil.");
					}
					// Lets move the file! 
					if(is_uploaded_file($_FILES['file']['tmp_name'])) 
					{ 
						// rätt! 
						move_uploaded_file($file['tmp_name'],$mapp . $file['name']); 
						echo "<center><b>Klart! Bilderna är uppladdade.</b></center>\n<p>\n";
						echo "<table width=\"400\" border=\"0\" align=\"center\" cellspacing=\"0\" cellpadding=\"10\" bgcolor=\"#666699\">\n";
						echo "<tr> \n";
						echo "<td>Filnamn:</td>\n";
						echo "<td>".$file['name']."</td>\n";
						echo "</tr>\n";
						echo "<tr>\n";
						echo "<td>Bytes:</td>\n";
						echo "<td>".$file['size']."</td>\n";
						echo "</tr>\n";
						echo "</table><p>\n";		
					} 
					else 
					{ 
						// Error! 
						echo "<center>Något gick fel!</center><p>\n<pre>\n"; 
						print_r($file); 
						echo "</pre>\n"; 
					}
				}
			}
			$i++;
		}
	}	
}

if (isset($_GET['ladda_upp'])) 
{
?> 

<form action="<?=$PHP_SELF?>" method="post" enctype="multipart/form-data">
<input name="filuppladdning" type="hidden">
<input name="antal" type="hidden" value="<?=$_GET['antal']?>">
<table width="400" border="0" align="center" cellpadding="10" cellspacing="0" bgcolor="#666699">
<tr> 
	<td colspan="2"><p>Till&aring;tna filtyper &auml;r: jpg, jpeg, gif och png!</td>
</tr>
<?php 
for ($antal=1; $antal<=$_GET['antal']; $antal++) 
{
?>
<tr> 
    <td> <input type="file" name="file" value="fil<?=$antal?>"></td>
</tr>
<?php	
}
?>
<tr>
	<td><input name="submit" type="submit" value="Ladda upp"></td>
</tr>
</table>
</form>
<?php 
}
?>
<form action="<?=$PHP_SELF?>" method="get">
<input name="ladda_upp" type="hidden">
<table width="400" border="0" align="center" cellpadding="10" cellspacing="0" bgcolor="#666699">
<tr> 
	  <td colspan="2">Hur m&aring;nga bilder vill du ladda upp?</td>
</tr>
<tr> 
      <td width="120"><input name="antal" type="text" id="antal" size="2" maxlength="2" /> </td>
    <td width="280"><input name="submit" type="submit" value="Forts&auml;tt"></td
></tr>
</table>
</form>
Medlem sedan jan. 20011 140 inlägg
#6

Sjysst Pedda. Jag ska försöka jobba vidare på koden sen!

Medlem sedan jan. 200430 inlägg
#7

Har ett komplett "upload" liggande på pc'n..
Nått jeg gjorde før en kund en gång...

Gjord i pHp
Ingen databas nödvändigt...
Lastar upp 5 bilder åt gången.
-Gjort detta til max för att spara lite tid..
-Desto flera bilder, ju längre tid tar det...
-Men, om du vill kan jag ändra så du kan lasta:
100 bilder åt gången :OO
Lastar upp bilder från din dator (era datorer)
Du kan oxå gjöra en ny mapp(i samma prog.)
- som bilderna ska lägga's i...
Har egen "gallery" för dina bilder...
Skicka PM om du vil ha det...

/kjelle

258 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)