Avatar billede chris0905 Nybegynder
07. november 2011 - 20:59 Der er 9 kommentarer og
1 løsning

Upload script vil ikke virke...

Hej Eksperter!

Jeg har følgende script, men det siger at der ikke er valgt nogen fil...

$uploadDir = "../boligBilleder/"; //Bibliotek hvor filer uploades til - husk chmod 777
$allowedFileTypes = array('jpg','JPG','jpeg'); //Hvilke filer vil vi acceptere bliver uploadet?

//Er der trykket på Upload file knappen?
if(isset($_POST['myUpload']))
{
  //Har vi en fil?
  if(is_uploaded_file($_FILES['myFile']['tmp_name']))
  {
    //Filendelse
    $extension = strtolower(pathinfo($_FILES['myFile']['name'],PATHINFO_EXTENSION));
   
    //Er filen en af de filer vi gerne vil have?
    if(in_array($extension,$allowedFileTypes))
    {   

      //Vi flytter filen fra tmp til vores UPLOADDIR
      if(move_uploaded_file($_FILES['myFile']['tmp_name'],$uploadDir . basename($_FILES['myFile']['tmp_name']).'.jpg'))
      {
          $fileName = basename($_FILES["myFile"]["tmp_name"]).".jpg";
          $myNewFile = "/boligBilleder/".$fileName;
          $id = $_GET['url'];
        //echo '<p style="color:green;"><b>File ('.basename($_FILES['myFile']['name']).') uploaded succesfully</b></p> '.$uploadDir.$fileName.'<br>';

        $sql = "UPDATE lejemaal SET billede2 = '{$myNewFile}' WHERE url = '{$id}' ";
            if(mysql_query($sql)){
                //print "Din fil ligger nu i databasen!";
                print "<img height=125px src=".$myNewFile.">";
            }else{
                echo "query fejl";
                echo "<p>".mysql_error()."</p>";
            }
        }
      else
      {
        echo '<h3 style="color:red;">Error - unable to upload file: '.basename($_FILES['myFile']['name']).'</h3>';
      }
    }
    else
    {
      echo '<h3 style="color:red;">Wrong filetype, allowed filetypes are: ('.implode(',',$allowedFileTypes).')</h3>';
    }
  }
  else
  {
    echo '<h3 style="color:red;">No file selected<h3>';
  }
}else{

//Vores form
echo '<form action=# method="post" enctype="multipart/form-data">';
echo 'File ('.implode(',',$allowedFileTypes).'): <input type="file" name="myFile"><br />';
echo '<input type="submit" name="myUpload" value="Upload file">';
echo '</form>';

}
?>


Håber at der er nogle af jer der kan sige mig hvad der er galt...


Mvh

Christoffer
Avatar billede moddi100 Seniormester
07. november 2011 - 23:09 #1
Umiddelbart ser det rigtigt ud i mine øjne.

Hvad sker der hvis du skriver følgende:

print_r($_FILES);
Avatar billede olebole Juniormester
08. november 2011 - 00:05 #2
<ole>

Njaarh ... der er nu en del fejl. Prøv dette i stedet:


$uploadDir = "../boligBilleder/"; //Bibliotek hvor filer uploades til - husk chmod 777
$allowedFileTypes = array('jpg','jpeg'); //Hvilke filer vil vi acceptere bliver uploadet?

//Er der trykket på Upload file knappen?
if(isset($_POST['myUpload']))
{
  //Har vi en fil?
  if(is_uploaded_file($_FILES['myFile']['tmp_name']))
  {
    //Filendelse
    $extension = strtolower(pathinfo($_FILES['myFile']['name'],PATHINFO_EXTENSION));
   
    //Er filen en af de filer vi gerne vil have?
    if(in_array($extension,$allowedFileTypes))
    {   

      //Vi flytter filen fra tmp til vores UPLOADDIR
      if(move_uploaded_file($_FILES['myFile']['tmp_name'],$uploadDir . basename($_FILES['myFile']['name'])))
      {
          $fileName = basename($_FILES["myFile"]["name"]);
          $myNewFile = "/boligBilleder/".$fileName;
          $id = $_GET['url'];
        //echo '<p style="color:green;"><b>File ('.basename($_FILES['myFile']['name']).') uploaded succesfully</b></p> '.$uploadDir.$fileName.'<br>';

        $sql = "UPDATE lejemaal SET billede2 = '$myNewFile' WHERE url = '$id' ";
            if(mysql_query($sql)){
                //print "Din fil ligger nu i databasen!";
                print "<img height=125px src=".$myNewFile.">";
            }else{
                echo "query fejl";
                echo "<p>".mysql_error()."</p>";
            }
        }
      else
      {
        echo '<h3 style="color:red;">Error - unable to upload file: '.basename($_FILES['myFile']['name']).'</h3>';
      }
    }
    else
    {
      echo '<h3 style="color:red;">Wrong filetype, allowed filetypes are: ('.implode(',',$allowedFileTypes).')</h3>';
    }
  }
  else
  {
    echo '<h3 style="color:red;">No file selected<h3>';
  }
}else{

//Vores form
echo '<form action="#" method="post" enctype="multipart/form-data">';
echo 'File ('.implode(',',$allowedFileTypes).'): <input type="file" name="myFile"><br />';
echo '<input type="submit" name="myUpload" value="Upload file">';
echo '</form>';

}


/mvh
</bole>
Avatar billede chris0905 Nybegynder
08. november 2011 - 15:49 #3
oleboles svar virkede ikke :(... men moddis gav følgende:

Array ( [myFile] => Array ( [name] => DSC00222.JPG [type] => [tmp_name] => [error] => 1 [size] => 0 ) )

hva betyder så det???
Avatar billede olebole Juniormester
08. november 2011 - 16:00 #4
Jo, det virker fuldstændig efter hensigten. Du må få en eller flere fejl, men det undrer mig, du ikke omtaler dem.

Nu har jeg testet mit eksempel, og jeg får en fejl i linjen $id = $_GET['url'];. Det skyldes naturligvis, du ikke har et felt, der hedder 'url' - men billedet bliver fint uploaded.

Hvad mener du egentlig med "virker ikke"? Prøv med en fejlbeskrivelse efter recepten:

*) Hvad havde du forventet ville ske?
*) Hvad skete?
*) Hvad skete ikke?
*) Fik du fejl?
*) Hvis du fik fejl, hvad sagde de så?
Avatar billede olebole Juniormester
08. november 2011 - 16:06 #5
Fejlen i #3 kunne tyde på, du har overskredet den tilladte upload størrelse. Hvor stor var den fil, du testede med?
Avatar billede chris0905 Nybegynder
08. november 2011 - 16:36 #6
Nu fandt jeg ud af det... Det var størrelsen... jeg giver kvaje-bajer (igen) og point til olebole, da han sagde det gyldne ord...
Avatar billede olebole Juniormester
08. november 2011 - 16:44 #7
Hvis fejlen $_FILES['error'] er 1, er der tale om en fil, der er for stor.

Ellers tak, jeg samler ikke points. moddi100 fik dig til at udskrive array'et - hvilket gav mig et hint om årsagen, så han fortjener dem vel  *o)
Avatar billede chris0905 Nybegynder
08. november 2011 - 16:46 #8
det har du ret i... moddi100, smid et svar...
Avatar billede moddi100 Seniormester
08. november 2011 - 20:05 #9
Du beholder dem bare selv i dette tilfælde, men brug i stedet tiden på lige at kigge følgende side igennem. Det kunne være en ide at teste for disse fejl:

http://www.php.net/manual/en/features.file-upload.errors.php
Avatar billede chris0905 Nybegynder
08. november 2011 - 20:20 #10
tak for hjælpen!
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