Avatar billede -veile- Nybegynder
09. maj 2006 - 00:19 Der er 15 kommentarer og
1 løsning

Upload billed

Hey

Jeg har brug for et opload system, men jeg har desværre ingen anelse om hvordan det skal laves, jeg er erfaren PHP koder, men har aldrig været i den del af sproget, med file upload! så hvis i kender en artikel eller andet som beskriver det hele fra bunden ville det være mega godt, og hvad man skal regne i når man skal finde en max størrelse af en fil ?

evt. et færdigt script som jeg kunne se hvordan det er opbygget!

// Jacob Veile
Avatar billede keysersoze Ekspert
09. maj 2006 - 00:29 #1
Avatar billede krukken Mester
09. maj 2006 - 00:49 #2
$galleriname = $_REQUEST['id'];
$numoffile = 10;

$number = 0; 
if (isset($_REQUEST['action']))
{
    for ($i=0;$i<$numoffile;$i++)
    {
        if(trim($_FILES["files".$i]['name']!="") )
        {
            $galleri->upload_fil($galleriname,$_FILES["files".$i]);
            $number++;
        }
    } 

?>
<h3>Upload billeder til <?=$galleriname?> </h3>
<form method='post' enctype='multipart/form-data'>

<table cellspacing="0" cellpadding="0" class="spreadSheet">
<? 
  for($i=0;$i<$numoffile;$i++)
  {?> 
    <tr><td class="ssCell"><input type="file" name="files<?=$i?>" size="30" /></td></tr>
  <?}
?> 
<tr><td class="ssCell"><input type='submit' name='action' value='Upload'></td></tr>
</table> 
</form>
<?
if (isset($number) && $number>0)
{
    print "<h4>Du har lige oploaded " .$number." fil(er)</h4><a href=\"$galleriname/index.php?id=$galleriname\">Tilbage til galleriet</a>";
}
Avatar billede krukken Mester
09. maj 2006 - 00:50 #3
function upload_fil($folder,$fil)
    {
        $max_stoerrelse = 1000000;
        $filtyper_tilladt = "default";
        $bibliotek  = "../../members/galleri/".$folder."/";
       
        if ($fil["size"] > 0)
        {
            $filnavn = strtolower(ereg_replace(" ", "_", $fil["name"]));
            $fra = $fil["tmp_name"];
            $til = $bibliotek . "/" . $filnavn;
            $filtype = $fil["type"];
            $fejl = 0;
           
                       
            if ($fejl == 0)
            {
                if (file_exists($til))
                {
                    $pos = strrpos($filnavn, ".");
                    $foerpos = substr($filnavn, 0, $pos);
                    $efterpos = substr($filnavn, $pos + 1, strlen($filnavn) - ($pos + 1));
                    $i = 2;
                   
                    $string =  "<p>Filen '$filnavn' eksisterer allerede i '" . $bibliotek . "' og filen omdøbes derfor til ";
                   
                    while (file_exists($til))
                    {
                        $filnavn = $foerpos . "(" . $i . ")." . $efterpos;
                        $til = $bibliotek . "/" . $filnavn;
                        $i++;
                    }
                    $string =  "'$filnavn'</p>";
                }
   
            if (move_uploaded_file($fra, $til))
            {
                return true;
            }
            else
            {
                $string = "<p>Desværre, filen '$filnavn' kunne ikke uploades!</p>";
                return false;
            }
        }
    }
    else
    {
        $string = "<p>Der er ikke vedhæftet nogen fil!</p>";
    }
}
Avatar billede krukken Mester
09. maj 2006 - 00:50 #4
Ud fra dette burde du kunne lave det - det fungere i hvert fald for mig:-)
Avatar billede krukken Mester
09. maj 2006 - 00:52 #5
Jeg har brugt det til upload af billeder, derfor er der refereret til galleri flere steder. Men den virker altså også til til andre filer. Lig do mærke til at der er et maksimum på filstørrelsen - den kan du bare ændre.
Avatar billede krukken Mester
09. maj 2006 - 00:54 #6
$_REQUEST['id'] = et bibliotek.
$_REQUEST['action'] = undersøger om der er blevet trykket på en submit-knap.
Avatar billede -veile- Nybegynder
09. maj 2006 - 13:34 #7
Jeg siger tak for hjælpen, vender tilbage hvis jeg støder i problemmer, så lig li et svar! ?
Avatar billede krukken Mester
09. maj 2006 - 19:22 #8
svar:-)
Avatar billede -veile- Nybegynder
10. maj 2006 - 17:03 #9
sætte til sårn at det kun er jpg/jpeg og png filer man kan oploade
Avatar billede krukken Mester
10. maj 2006 - 17:43 #10
A hvad for noget?
Avatar billede krukken Mester
10. maj 2006 - 17:45 #11
Hvis du kun ønsker at kunne uplaode jpg eller png, så kan du jo bare lave et tjek på $efterpos, det indeholder fil-extensionen.
Avatar billede -veile- Nybegynder
10. maj 2006 - 22:06 #12
Kan desværre ikke få den til at virke
Avatar billede krukken Mester
11. maj 2006 - 00:06 #13
$efterpos = substr($filnavn, $pos + 1, strlen($filnavn) - ($pos + 1));

if($efterpos != "jpg" || $efterpos != "png")
return false
Avatar billede krukken Mester
11. maj 2006 - 00:09 #14
eller bruge det som condition omkring resten af funktionen:
if($efterpos == "jpg" || $efterpos == "png")
{
}
else
{
return false; //eller en fejl bested med return "minfejlbesked";
}
Avatar billede krukken Mester
11. maj 2006 - 00:09 #15
Prøv at læse kode igennem, det er altså noget lettere at rette i koden hvis man forstå den:-)
Avatar billede nomisweb Nybegynder
16. januar 2008 - 08:15 #16
Hej,
Ser smart ud, måske skulle jeg ændre min billede opload til det i stedet. Hvad sker der hvis man har et billede i en database som ikke skal overskrives hvis man oploader andre billeder i samme indlæg/kollonne?
Altså har du et forslag til at ændre lidt i ovenstående så den tjekker om der er en fil og hvis ikke, beholder den bare den gamle? Det kan jeg nemlig ikke finde ud af.
Tak.
Simon
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester