---
title: "Spara fil från FTP"
type: "forum-thread"
url: "https://www.webforum.nu/amne/webbutveckling/169017-spara-fil-från-ftp"
topic: "Webbutveckling"
topic_url: "https://www.webforum.nu/amne/webbutveckling"
author: "zlasher"
published: "2008-02-13T13:42:58.000Z"
updated: "2008-02-14T07:25:35.000Z"
replies: 4
views: 730
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/webbutveckling/169017-spara-fil-från-ftp"
---

# Spara fil från FTP

## #1 — zlasher, 2008-02-13T13:42Z

Hej!

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.

Tack tack!

Permalänk: https://www.webforum.nu/p/169017

## #2 — spango, 2008-02-13T14:12Z

Efter att du laddat ner filen lokalt på webbservern kan du använda t.ex. [readfile](http://se2.php.net/manual/sv/function.readfile.php) 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.

Permalänk: https://www.webforum.nu/p/2079448

## #3 — zlasher, 2008-02-14T07:06Z

Det där löste ju nästan allt! Tack så mkt! :)

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...

Koden jag kör är:

```php
$filename = 'bilder.doc';

$conn_id = ftp_connect("*****");

$login_result = ftp_login($conn_id, "****", "******");

$tempfile = tempnam(sys_get_temp_dir(), 'ftp');

ftp_get($conn_id, $tempfile, $filename, FTP_BINARY);

header('Content-Type: application/octet-stream'); 
header('Content-Disposition: attachment'); 

readfile($tempfile);
unlink($tempfile);
```

Permalänk: https://www.webforum.nu/p/2079608

## #4 — @nders, 2008-02-14T07:09Z

Vad tror du om en filename-header?

<http://se2.php.net/header>

Permalänk: https://www.webforum.nu/p/2079609

## #5 — zlasher, 2008-02-14T07:25Z

Tack @nders. Du hann skicka ditt innan mig... :)

Aahh!
Sökte lite på

```php
header('Content-Disposition: attachment');
```

och såg att man kunde lägga till ;filename="filnamn.ext" vilket löser allt!
Tack så mkt! Återkommer om jag skulle köra fast igen... :)

Permalänk: https://www.webforum.nu/p/2079611

---

Tråden på webben: https://www.webforum.nu/amne/webbutveckling/169017-spara-fil-från-ftp
