Avatar billede supremebot Nybegynder
13. oktober 2003 - 14:48 Der er 11 kommentarer

tmp filer, upload, fread

jeg har et problem med hensyn til at uploade filer som skal op og ligge i en mysql db. jeg kan af en eller anden grund ikke læse de filer der briver uploadet og når jeg kigger i temp mappe ser det heller ikke ud som om at den ligger nogle filer der men det sjover er at den godt kan finde ud af en masse andre informationer om billedet. her er koden med en masse ekstra test:

if(isset($HTTP_POST_FILES["upload_fil"])){
       
    $filnavn = $HTTP_POST_FILES["upload_fil"]["tmp_name"];
    //$filsti = str_replace("\\","/", $filnavn);
    //$filnavn = $filnavn.".tmp";
    echo $filnavn;
    if(is_uploaded_file($HTTP_POST_FILES['upload_fil'])) {
    copy($HTTP_POST_FILES['upload_fil'], "/user/local/lib/php/tmp");
    }
    echo "<br>". $HTTP_POST_FILES["upload_fil"]["size"];//filesize($filnavn);
    echo "<br>".$HTTP_POST_FILES['upload_fil']['error'];
   
    if (file_exists($filnavn)) {
    print "<br>The file ". $HTTP_POST_FILES["upload_fil"]["name"]." exists";
    } else {
    print "<br>The file $filename does not exist";
    }

   
    if(1) {
    $open = fopen($filenavn,"r");
    $size = filesize($filnavn);
      $data = fread($open,$size);
      $a=getimagesize($filnavn);
      $width=$a[0]; $height=$a[1];
      //$type=addslashes($HTTP_POST_FILES['upload_fil']['type']);

    echo "<br>". $width ." X ". $height;
   
    exit; 
    }
}

og det her er hvad jeg så får tilbage:

/usr/local/lib/php/tmp/phpMxJMv7
79416
0
The file PIC00006.JPG exists
Warning: fread(): supplied argument is not a valid stream resource in /home/www/test.egmont-hs.dk/login/uploadbillede.php on line 27

640 X 480
Avatar billede olebole Juniormester
13. oktober 2003 - 14:52 #1
<ole>

Det er vist et billede, ikke? Prøv at læse det binært:
  $open = fopen($filenavn,"rb");

/mvh
</bole>
Avatar billede olebole Juniormester
13. oktober 2003 - 14:54 #2
... men prøv at læse her:
  http://dk.php.net/manual/en/function.fopen.php
der er lidt forskelle, afhængig af PHP-versionen
Avatar billede olebole Juniormester
13. oktober 2003 - 14:55 #3
Men hvorfor lægge billedet i databasen? Det er da federe at have det som en fysisk fil på serveren - og nøjes med URL'en i databasen  :)
/mvh
Avatar billede supremebot Nybegynder
13. oktober 2003 - 15:02 #4
der er mange grunde til at det skal ligge i databasen. jeg har prøve med b på, det er ikke det, jeg tror det er noget der skal sættes rigtig i php.ini på vores linux server
Avatar billede olebole Juniormester
13. oktober 2003 - 15:11 #5
Jojo - du _skal_ bruge 'b' ... ellers får du det aldrig til at virke  :)

Denne linie er dog helt gal:
  copy($HTTP_POST_FILES['upload_fil'], "/user/local/lib/php/tmp");
Andet argument skal være stien til, hvor du lægger billedet - men hvorfor overhovedet prøve at kopiere billedet, når det ikke er, hvad du vil?
Avatar billede olebole Juniormester
13. oktober 2003 - 15:15 #6
Hmmmm .... jo forresten, det kan godt være, det virker uden 'b' under Linux  :)
Avatar billede olebole Juniormester
13. oktober 2003 - 15:17 #7
Doooohhhhh  :D

$open = fopen($filenavn,"r");
skal være:
$open = fopen($filnavn,"r");
Avatar billede olebole Juniormester
13. oktober 2003 - 15:19 #8
Men det her bør du klart slette, hvis du ikke ønsker den fysiske fil på serveren:
if(is_uploaded_file($HTTP_POST_FILES['upload_fil'])) {
    copy($HTTP_POST_FILES['upload_fil'], "/user/local/lib/php/tmp");
}
Ønsker du den, skal du skrive funktionen rigtigt  :)
/mvh
Avatar billede olebole Juniormester
13. oktober 2003 - 15:21 #9
Og så vil jeg så gerne blive klogere ... kan du ikke fortælle, hvorfor du gerne vil have det i DB'en?
Avatar billede supremebot Nybegynder
13. oktober 2003 - 16:39 #10
copy var bare en test for at se om den ville gøre det og de ville den ikke. det copyer ikke filen.
Avatar billede olebole Juniormester
13. oktober 2003 - 17:08 #11
Nej, naturligvis ikke ... men det har jeg jo forklaret dig for længe siden. Hvad med den anden rettelse - mon ikke den hjalp?
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