Har letat lääänge nu utan att finna något bra svar.
Jag har skapat ett administrationsverktyg där användare som loggar in ska kunna ladda ner filer från en FTP-server. FTP-servern är min egen och jag vill att användare ska kunna klicka på filer och ladda ner dem utan att behöva skriva in något användarnamn eller lösenord.
Jag testade ftp_get-funktionen i PHP men då loggar scriptet in, hämtar filen och sparar den lokalt utan att användaren kan välja var den ska sparas.
Hur gör jag för att användaren ska kunna spara filer var de vill på sin dator?
Sorry om det här har blivit besvarat; har letat på webforum så gott jag kan utan att finna något tillfredsställande svar.
Efter att du laddat ner filen lokalt på webbservern kan du använda t.ex. readfile för att skicka vidare den till klienten (se till att ange vettiga headers först, som content-type och content-disposition). Typ...
<?php
$tempfile = tempnam(sys_get_temp_dir(), 'ftp');
[I]... ladda ner filen från FTP till $tempfile...[/I]
header('Content-Type: application/octet-stream'); // eller någon annan vettig innehållstyp
header('Content-Disposition: attachment'); // spara istället för att öppna i webbläsare
readfile($tempfile);
unlink($tempfile);
?>
Kom dock ihåg att det här är rätt krävande för bandbredden - du använder dubbelt så mycket bandbredd som den nedladdade filen är stor. Vill du åtgärda det får du antingen mellanlagra filerna på webbservern (alt. spegla FTP-servern på en katalog där), eller så får du tillåta anonym inloggning på din FTP.
Ett problem återstår dock...
Namnet på filen som ska laddas ner blir namnet på sidan som kör scriptet. Går det att döpa om filen på något sätt? Jag testade att köra rename innan readfile men det hjälpte inte...