[PHP] Bestand downloaden

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • GewoonNico
  • Registratie: April 2003
  • Laatst online: 20-09 02:48
Ik heb op mijn eigen server een fotoalbum. (WinXP, Mysql, Apache2, Php)

De website staat op de W schijf en de foto's lees ik in op de F schijf.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
[php]
<?
        header("Content-type: image/jpeg"); 

        ob_clean();
        $fullimage = "F:/Fotos/".$_GET['id']."";
        
        if ($_GET['size'] == "thumb")
            {
            $maxX = "75"; 
            $maxY = "56"; 
            }
        elseif ($_GET['size'] == "500")
            {
            $maxX = "500"; 
            $maxY = "375"; 
            }
        else
            {
            $maxX = "75"; 
            $maxY = "56"; 
            }
        
        // Img Maken
        $imgsize = getimagesize($fullimage);        
        $timg = imageCreateFromJPEG($fullimage);
        $type = "jpg";
        $imgX = $imgsize[0];
        $imgY = $imgsize[1];
        $_X = $imgX/$maxX * 100;
        $_Y = $imgY/$maxY * 100;
        if((100-$_X) < (100-$_Y))
            {
            $_K = $_X;
            }
        else 
            {
            $_K = $_Y;
            }
        $newX = floor($imgX/$_K * 100);
        $newY = floor($imgY/$_K * 100);
        $imgh = imageCreateTrueColor($newX, $newY);
        imagecopyresized($imgh, $timg, 0,0,0,0,$newX,$newY,$imgX,$imgY);
        ImageJPEG($imgh);
        die();
?>
[/php]


Als nu iemand de foto wilt downloaden (rechtermuisknop -> Afbeelding opslaan als) Dan krijgt hij standaard als bestandsnaam ''Naamloos.bmp'

Kan dit worden veranderd naar de originele bestandsnaam op de een of andere manier?
Zelf dacht ik om dit in de headers te plaatsen. Maar dat wilt niet lukken.

Nico

[ Voor 10% gewijzigd door GewoonNico op 18-06-2004 09:47 ]


Acties:
  • 0 Henk 'm!

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Da's een Client probleem (IE) in dit geval... Ik heb het soms ook en dan moet ik weer eens m'n cache legen.

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Acties:
  • 0 Henk 'm!

  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02 23:12

SchizoDuckie

Kwaak

BtM909 schreef op 18 juni 2004 @ 09:47:
Da's een Client probleem (IE) in dit geval... Ik heb het soms ook en dan moet ik weer eens m'n cache legen.
Da's dus onzin. Als je server geen header meegeeft die vertelt hoe het bestand heet, kan je client dat ook moeilijk raden he?

Dit gebruik ik om een excel sheet te sturen:
PHP:
1
2
3
4
5
6
7
        header ( "Expires: Mon, 1 Apr 1974 05:00:00 GMT" ); 
        header ( "Last-Modified: " . gmdate("D,d M YH:i:s") . " GMT" ); 
        header ( "Cache-Control: no-cache, must-revalidate" ); 
        header ( "Pragma: no-cache" ); 
        header ( "Content-type: application/x-msexcel" ); 
        header ( "Content-Disposition: attachment; filename={$filename}.xls" ); // deze is dus belangrijk ;)
        header ( "Content-Description: PHP Generated XLS Data" );

[ Voor 10% gewijzigd door SchizoDuckie op 18-06-2004 11:05 ]

Stop uploading passwords to Github!


Acties:
  • 0 Henk 'm!

Verwijderd

there you go:

PHP:
1
2
header("Content-type: image/jpeg");
header("Content-Disposition: inline; filename=blah.jpg");


edit:
too slow :)

[ Voor 19% gewijzigd door Verwijderd op 18-06-2004 11:06 ]


Acties:
  • 0 Henk 'm!

  • GewoonNico
  • Registratie: April 2003
  • Laatst online: 20-09 02:48
Dit had ik al geprobeerd, maar helaas werkt dit niet...

Is dit probleem ook op een andere manier op te lossen ?

Acties:
  • 0 Henk 'm!

  • slm
  • Registratie: Januari 2003
  • Laatst online: 12-11-2023

slm

Hoezo is dat onzin? Het bestandstype wordt zelfs niet goed door IE gezien bij opslaan als (jpg -> bmp).

Lijkt me dus niet een reden om direct een client probleem uit te sluiten.

To study and not think is a waste. To think and not study is dangerous.


Acties:
  • 0 Henk 'm!

  • TwoR
  • Registratie: Augustus 2002
  • Laatst online: 16:43

TwoR

Gekleurde stippen

Het is inderdaad een IE probleem, ik heb het zelf ook gehad en als je dan je chache leegt is het probleem over. Ook bij de grotere webmail apllicaties (horde, squirrel) komt dit probleem bij wel eens voor en ik neem toch echt aan dat die wel snappen waar ze mee bezig zijn. Onder Firefox en Opera heb ik het nog nooit gehad trouwens .

[ Voor 11% gewijzigd door TwoR op 18-06-2004 11:41 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Nee, het is geen IE probleem.. Cache legen gaat in dit geval dan ook niet werken.
Hoe zou de browser de filename moeten ruiken? Die wordt helemaal niet verstuurd.

Slechts de Content-Type en de _jpegdata_ van de file wordt verstuurd, en de filename wordt niet opgeslagen in een jpeg zelf oid.

Acties:
  • 0 Henk 'm!

  • Skaah
  • Registratie: Juni 2001
  • Laatst online: 16-09 18:38
Verwijderd schreef op 18 juni 2004 @ 12:28:
Nee, het is geen IE probleem.. Cache legen gaat in dit geval dan ook niet werken.
Hoe zou de browser de filename moeten ruiken? Die wordt helemaal niet verstuurd.

Slechts de Content-Type en de _jpegdata_ van de file wordt verstuurd, en de filename wordt niet opgeslagen in een jpeg zelf oid.
Het is wel een IE probleem.
IE denkt: hé, zonet stond dat plaatje nog in mijn cache, maar nu kan ik het nergens meer vinden? Nou ja, dat stuur ik de bitmap die in mijn geheugen staat wel.

Wis maar eens je Temporary Internet files terwijl je een pagina openhoudt. Probeer dan eens om een plaatje op te slaan.

De bestandnaam haalt IE uit het laatste deel van de url (het stuk na de laatste /). www.example.com/test/image.php?id=3 (en het is een jpeg), wordt dan image.jpg

Acties:
  • 0 Henk 'm!

  • Snow_King
  • Registratie: April 2001
  • Laatst online: 17:19

Snow_King

Konijn is stoer!

Als je nou gewoon voor de zekerheid die filename wel meestuurt in de header?

Acties:
  • 0 Henk 'm!

  • Evilbee
  • Registratie: November 2002
  • Laatst online: 14:59
Ik heb dit getest onder opera en IE en hierbij wordt de filename wel goed weergegeven:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
$file = '/var/www/img.jpg';
$file_name = 'img.jpg';

header("Expires: ".gmdate("D, d M Y H:i:s", time() + $cache_time) . "GMT");
header("Cache-Control: max-age=". $cache_time);
header("Last-Modified: " . gmdate("D, d M Y H:i:s", time() + $cache_time) . "GMT");
## sending image
header('Content-type: image/jpeg');
header('Content-transfer-encoding: binary');
header('Content-length: '.filesize($file));
header('Content-Disposition: attachment; filename='.$file_name );
header('Content-Disposition: inline; filename='.$file_name);
echo file_get_contents($file);

Hier staat een voorbeeld
offtopic:
@Ivy: Zie de url in mijn sig, daarstaat nog meer ;)

[ Voor 16% gewijzigd door Evilbee op 18-06-2004 13:40 ]

LinkedIn - Collega worden?


Acties:
  • 0 Henk 'm!

Verwijderd

offtopic:
Woei! Met zulke voorbeelden kun je aankomen!

Acties:
  • 0 Henk 'm!

  • slm
  • Registratie: Januari 2003
  • Laatst online: 12-11-2023

slm

leuk vrouwtje maar, al kan IE de filenaam niet ruiken, IE kan wel het type ruiken door de header image/jpeg. Op dat moment moet IE normaal gezien de naam [script_name].jpg als filenaam geven bij "Opslaan Als"

To study and not think is a waste. To think and not study is dangerous.

Pagina: 1