Come è il nome del file da scaricare scelto e c'è un modo per cambiarlo?

StackOverflow https://stackoverflow.com/questions/894298

  •  23-08-2019
  •  | 
  •  

Domanda

Ho un link a un file non sul mio server:

<a href="history.nasa.gov/monograph15b.pdf">NASA</a>

Vorrei fare in modo che quando un visitatore clicca sul link per scaricare, il nome che sarebbe pop-up per il PDF sarebbe NASA.pdf, e non monograph15b.pdf.

Questo è possibile in qualsiasi lingua?

È stato utile?

Soluzione

Se non si sta per ospitare il file da soli, si può essere in grado di leggere nel contenuto del file e quindi inviare questi contenuti direttamente al browser con le intestazioni appropriate.

Si noti che questo sarà lenta perché sarete ri-scaricando il file da NASA ogni volta che la pagina viene eseguito PHP.

<?php
$filename = "http://history.nasa.gov/monograph15b.pdf";
$outputfilename = "NASA.pdf";

header("Content-Type:  application/pdf");
header("Content-Disposition:  attachment; filename=\"" . basename($outputfilename) . "\";" );
header("Content-Transfer-Encoding:  binary");
readfile("$filename");
?>

Questo approccio richiede anche che PHP sia configurato in modo che fopen () in grado di gestire lettura di un file su HTTP.

Altri suggerimenti

L'unico modo per farlo davvero che è innanzitutto scaricare il file in questione sul proprio server, il nome è come si desidera, e poi servire il backup agli utenti finali.

guardare negli header HTTP Content-Disposition intestazione, che vi permetterà di specificare il nome del file.

È necessario utilizzare qualsiasi tecnologia server side come ASP.NET. Dove in si mette in un pulsante nella pagina. Quando il pulsante viene premuto esso deve svolgere compiti seguenti.

1) Response.Clear ();.

.

2) Response.AddHeader ( "Content-Disposition", "attachment; filename = Nasa.pdf");

.

3) Response.ContentType = "application / octet-stream";

4) Response.WriteFile (context.Server.MapPath ( "history.nasa.gov/monograph15b.pdf")).; // è necessario impostare il percorso realtively corretti per l'applicazione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top