pdf inladen vanaf ftp server

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Heren,

Nogmaals mijn vraag maar dan hopelijk iets meer volgens de topic regels.

Ik heb op een ftp server diverse documenten staan die ik wil kunnen inlezen in mijn website. Ze worden op de pagina zelf geladen door middel van javascript (pdfObject).

Op dit moment doe ik het zo:
PHP:
1
2
$pdf = $_GET['pdf'];
    header("location:ftp://$ftp_user_name:$ftp_user_pass@$ftp_server//PO/$pdf");


Dit hele gebeuren staat dan op een pagina die eerst checkt of er een sessie is etc zodat men niet bij de pdf's kan als men niet is ingelogd. Maar ik merk dat hier toch ongevraagd een vertraging in zit.

Ik vind php.net wel een ftp download tut maar krijg deze niet aan de praat. Deze code ziet er nu zo uit.

PHP:
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
        $pdf = $_GET['pdf'];
    $archief = "/PO/";
    
    // path to remote file
    $remote_file    = $archief.$pdf;
    $local_file     = $archief.$pdf;
    
    // open some file to write to
    $handle = fopen($local_file, 'w');
    
    // set up basic connection
    $conn_id = ftp_connect($ftp_server, $ftp_port);
    
    // login with username and password
    $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
    
    // check connection
    if ((!$conn_id) || (!$login_result))
    {
        echo "FTP connection has failed!";
        echo "Attempted to connect to $ftp_server for user $ftp_user_name";
        exit;
    } else {
        echo "Connected to $ftp_server, for user $ftp_user_name<br />";
    }
    
    // try to download $remote_file and save it to $handle
    if (ftp_fget($conn_id, $local_file, $remote_file, FTP_BINARY, 0)) {
         echo "successfully written to $local_file\n";
    } else {
         echo "There was a problem while downloading $remote_file to $local_file\n";
    }
    
    // close the connection and the file handler
    ftp_close($conn_id);
    fclose($handle);


Ik vermoed dat dit komt door het path van local_file maar weet het niet zeker.

Hoop dat dit topic zo wel voldoet aan de regels..?

Acties:
  • 0 Henk 'm!

  • frickY
  • Registratie: Juli 2001
  • Laatst online: 18-09 14:42
Met header("Location") lees je het PDF bestand niet zelf uit, maar vewijs je de browser van de bezoeker hiernaar door. De uiteindelijke URL is voor client's dus gewoon te achterhalen en dus je sessie-controle te omzeilen.
Hier zit nauwlijks vertraging in. Vergeet alleen geen exit; na de header() te doen zodat de rest van je script niet wordt uitgevoerd, voor zover dat er is.

De PDF downloaden via FTP kan, maar het is eenvoudiger als de url-wrappers aanstaan. Je kunt het bestand dan via je reguliere file-functies benaderen.
PHP:
1
2
3
4
5
6
7
8
$fp = fopen('http://host.tld/file.pdf', 'rb');
if ($fp) {
  while (!feof($fp)) {
    echo fgets($fp, 4096);
  }
  fclose($fp);
}
exit;

[ Voor 19% gewijzigd door frickY op 24-08-2010 13:09 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
hmm, een lokaal bestand leest hij perfect uit maar online doet hij niet wat. ik denk dat het komt omdat hij het bestand van een ftp server af moet halen?

Acties:
  • 0 Henk 'm!

  • frickY
  • Registratie: Juli 2001
  • Laatst online: 18-09 14:42
Zie mijn link naar de url-wrappers; http://nl.php.net/manual/...n.php#ini.allow-url-fopen
Die moeten wel aanstaan, anders werkt het inderdaad niet.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
die staat ook al aan, had ik vooraf gecheckt. maar op de een of andere reden blijft de pagina blanqo...

Acties:
  • 0 Henk 'm!

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Heb je RobIII in "ftp pdf downloaden en outputten" wel goed gelezen. Even je topic naar de buren schoppen (/PRG).

Hou er ook rekening mee dat PHP uitermate geschikt is om je debug skills er op los te laten... Wil je dan ook iets meer zelfinzet tonen (want "Ik vind php.net wel een ftp download tut maar krijg deze niet aan de praat" is niet voldoende :))

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!

  • Cartman!
  • Registratie: April 2000
  • Niet online
Ik vermoed dat dit komt door het path van local_file maar weet het niet zeker.
Dan ga je dus debuggen! error_reporting(-1), display_errrors aanzetten en gaan met die banaan :)

Is er geen mogelijkheid om die PDF's gewoon op de eigen server te zetten? Met fpassthru kun je dan gewoon de file doorsturen naar de client (mits deze user voldoet aan jouw eisen).

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
hmm. dat ik daar nog niet was opgekomen... dom dom..
maar het is dus deze error.. ga wel even goeglen wat ik hier mee kan.. thanx

Warning: fopen() [function.fopen]: connect() failed: Connection refused in /Applications/MAMP/htdocs/SIS/sis_po_pdf_4.php on line 15

Acties:
  • 0 Henk 'm!

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

Dat lijkt er dan op dat je provider uitgaande FTP-verbindingen niet ondersteunt.

https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...


Acties:
  • 0 Henk 'm!

  • Orion84
  • Registratie: April 2002
  • Laatst online: 21-09 02:46

Orion84

Admin General Chat / Wonen & Mobiliteit

Fotogenie(k)?

CodeCaster schreef op dinsdag 24 augustus 2010 @ 14:43:
Dat lijkt er dan op dat je provider uitgaande FTP-verbindingen niet ondersteunt.
De error die hij krijgt slaat op fopen() niet op het FTP gebeuren volgens mij?

The problem with common sense is that it's not all that common. | LinkedIn | Flickr


Acties:
  • 0 Henk 'm!

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

Ah, ik zat op regel 15 te kijken :+

https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...

Pagina: 1