Avatar billede _what_ Nybegynder
06. januar 2005 - 12:23 Der er 8 kommentarer og
1 løsning

Fil upload med php dum fejl

Jeg er ved at lave en side hvor der skal oprettes foregninger.

Der skal kunne uploades et billede til foregningens side men kan bare ikke for det til at virke.

http://www.videbaekidraetsogfritidscenter.dk/opretforegning.php´

Der oprettes selve foregningen i databasen det kører fint nok.

Man ryger så videre til en side hvor man skal vælge det billede der skal uploades.

Det fører så videre til næste trin hvor billedet gerne skulle blive uploaded.

Her går der så et eller andet galt.

Jeg har smidt filerne i en rar fil. som kan hentes her:

http://www.videbaekidraetsogfritidscenter.dk/vifc.rar

Det er vist i den fil der hedder uploadscript_fil1.php der er noget galt.

Ser ud til den løber hele vejen igennem koden men den opretter ikke noget i databasen eller smider filen op.

Håber på lidt hjælp.


Kode for dem som ikke vil dl.
________________________________________________________________

<?

$f_id = $_GET[f_id];

?>


<?php
if($_POST['up']){
    $files = $_FILES['upfil']['name'];
    $file = $_FILES['upfil']['tmp_name'];
    $fil_stoerrelse = filesize($file)/1024;
    if($fil_stoerrelse > "3072000000000000000000000000") {
        echo "Billedet fylder for meget. Tjek venligst at st&oslash;rrelsen ikke er over 300kb
        <a href=java script:history.back(-1)>Tilbage</a>";
        exit;
    }
    $billedewh = @GetImageSize($file);
    if ($billedewh['0'] >= 220 || $billedewh['1'] >= 220) {
        header ("location: uploadforepic.php?stort=34445345UJUY956745");
        exit;
    }
    $excheck = $_FILES['upfil']['type'];
    if ($excheck == "application/octet-stream") {
        header ("location: uploadforepic.php?type=error");
        exit;
    }

if ($excheck != "image/pjpeg" && $excheck != "image/jpg" && $excheck != "image/gif" && $excheck != "image/png") {
        header ("location: uploadforepic.php?type=error");
        exit;
    }

    $temparr = explode(".", $files);
    $tal = count ($temparr);
    $sti = "/gfx/billeder/";
    $dist = $_SERVER["DOCUMENT_ROOT"] ."$sti"."$f_id".".".$temparr[$tal-1];
    move_uploaded_file($_FILES['upfil']['tmp_name'], $dist);
    $extension = substr($excheck, 6, 20);
    if($extension == "jpeg") {
    $extension = "jpg";
    }
    if($extension == "pjpeg") {
    $extension = "jpg";
    }
    $filename = "$f_id.$extension";
   
   
   
    include ("mysql_connect.php");
    mysql_connect($host,$user,$pass);
    mysql_select_db($db);
    mysql_query("update foregninger set f_piclink1 = '$filename' WHERE f_id = '$f_id'");
    echo pislort;
}

?>

_________________________________________________________________
Avatar billede kammeyer Nybegynder
06. januar 2005 - 13:44 #1
Snavs:
if ($excheck != "image/pjpeg" && $excheck != "image/jpg" && $excheck != "image/gif" && $excheck != "image/png") {
  header ("location: uploadforepic.php?type=error");
  exit;
}
Du har OG mellem alle 4 - ingen uploadede filer kan være alle 4 på en gang. Du må omstrukturere den.
Hellere:

if ($excheck = "image/pjpeg" || $excheck = "image/jpg" || $excheck = "image/gif" || $excheck = "image/png") {
  $temparr = explode(".", $files);
  $tal = count ($temparr);
  $sti = "/test/exp2/billeder/";
  $dist = $_SERVER["DOCUMENT_ROOT"] ."$sti"."$f_id".".".$temparr[$tal-1];
  move_uploaded_file($_FILES['upfil']['tmp_name'], $dist);
  $extension = substr($excheck, 6, 20);
  if($extension == "jpeg") {
    $extension = "jpg";
  }
  if($extension == "pjpeg") {
    $extension = "jpg";
  }
  $filename = "$f_id.$extension";
       
       
       
  include ("mysql_connect.php");
  mysql_connect($host,$user,$pass);
  mysql_select_db($db);
  mysql_query("update foregninger set f_piclink1 = '$filename' WHERE f_id = '$f_id'");
  echo "Færdig !";
}
else {
  header ("location: uploadforepic.php?type=error");
  exit;
}
Avatar billede _what_ Nybegynder
06. januar 2005 - 16:09 #2
Ok nu har jeg fået den til at smide det rigtigt ind i databasen men den for stadig ikke lagt filen op på serveren.

Jeg tror det er en eller anden lille dum fejl.

Nogen der kan få øje på den ??
Avatar billede _what_ Nybegynder
06. januar 2005 - 16:10 #3
Nuværende kode
_________________________________
<?

$f_id = $_GET[f_id];

?>


<?php
if($_POST['up']){
    $files = $_FILES['upfil']['name'];
    $file = $_FILES['upfil']['tmp_name'];
    $fil_stoerrelse = filesize($file)/1024;
    if($fil_stoerrelse > "3072000000000000000000000000") {
        echo "Billedet fylder for meget. Tjek venligst at st&oslash;rrelsen ikke er over 300kb
        <a href=java script:history.back(-1)>Tilbage</a>";
        exit;
    }
    $billedewh = @GetImageSize($file);
    if ($billedewh['0'] >= 220 || $billedewh['1'] >= 220) {
        header ("location: uploadforepic.php?stort=34445345UJUY956745");
        exit;
    }
    $excheck = $_FILES['upfil']['type'];
    if ($excheck == "application/octet-stream") {
        header ("location: uploadforepic.php?type=error");
        exit;
    }

if ($excheck = "image/pjpeg" || $excheck = "image/jpg" || $excheck = "image/gif" || $excheck = "image/png") {
  $temparr = explode(".", $files);
  $tal = count ($temparr);
  $sti = "/gfx/billeder";
  $dist = $_SERVER["DOCUMENT_ROOT"] ."$sti"."$f_id".".".$temparr[$tal-1];
  move_uploaded_file($_FILES['upfil']['tmp_name'], $dist);
  $extension = substr($excheck, 6, 20);
  if($extension == "jpeg") {
    $extension = "jpg";
  }
  if($extension == "pjpeg") {
    $extension = "jpg";
  }
  $filename = "$f_id.jpg";
       
       
       
  include ("mysql_connect.php");
  mysql_connect($host,$user,$pass);
  mysql_select_db($db);
  mysql_query("update foregninger set f_piclink1 = '$filename' WHERE f_id = '$f_id'");
  echo "Færdig !";
  echo "$f_id";
}
else {
  header ("location: uploadforepic.php?type=error");
  exit;
}}
?>
Avatar billede _what_ Nybegynder
07. januar 2005 - 18:36 #4
Slet ikke nogen der har nogle bud ???

Kunne virkelig godt lige bruge lidt hjælp.
Avatar billede kammeyer Nybegynder
08. januar 2005 - 19:05 #5
sikker på du har de rigtige skriverettigheder på serveren? Kunne være en fejl der.

Ellers kan det være mappen der fejler - selve stien - har du oprettet den rigtigt - store / små bogstaver er korrekte osv ?

Jeg prøvede dine scripts her - disablede alt database, men fik uploaden til at fungere perfekt her med ovenstående løsning. Må være noget lokalt på serveren, når det virker her.
Avatar billede _what_ Nybegynder
09. januar 2005 - 12:06 #6
Kan det være den database del der gør noget galt så... jeg har lige tjekket på serveren alt står til det rigtige... write er slået til under cmod.
Avatar billede _what_ Nybegynder
09. januar 2005 - 12:14 #7
Har du prøvet det af med det sidste stykke kode jeg har smidt eller bare det du selv har lagt ind ??

Gider du prøve med det sidste jeg har lagt ind.
Avatar billede _what_ Nybegynder
09. januar 2005 - 13:22 #8
Hvis du lige smider et svar så giver jeg dig point som tag for hjælpen har selv fået løst problemet nu.
Avatar billede _what_ Nybegynder
10. april 2005 - 20:46 #9
tjek
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