& # 8220; nome & # 8221; pdf web per una migliore impostazione predefinita salvare il nome file in Acrobat?

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

Domanda

La mia app genera PDF per il consumo degli utenti. La "disposizione dei contenuti" L'intestazione http è impostata come indicato qui . Questo è impostato su " inline; nomefile = foo.pdf " ;, che dovrebbe essere sufficiente affinché Acrobat fornisca " foo.pdf " come nome file quando si salva il pdf.

Tuttavia, facendo clic su " Salva " in Acrobat incorporato nel browser, il nome predefinito da salvare non è quel nome file, ma invece l'URL con le barre rovesciate viene sottolineato. Enorme e brutto. C'è un modo per influenzare questo nome file predefinito in Adobe?

Esiste una stringa di query negli URL e questa non è negoziabile. Questo può essere significativo, ma l'aggiunta di un " & amp; foo = / title.pdf " alla fine dell'URL non influisce sul nome file predefinito.

Aggiornamento 2: ho provato entrambi

content-disposition  inline; filename=foo.pdf
Content-Type         application/pdf; filename=foo.pdf

e

content-disposition  inline; filename=foo.pdf
Content-Type         application/pdf; name=foo.pdf

(come verificato tramite Firebug) Purtroppo, nessuno dei due ha funzionato.

Un URL di esempio è

/bar/sessions/958d8a22-0/views/1493881172/export?format=application/pdf&no-attachment=true

che si traduce in un salvataggio predefinito di Acrobat come nome file di

http___localhost_bar_sessions_958d8a22-0_views_1493881172_export_format=application_pdf&no-attachment=true.pdf

Aggiornamento 3: Julian Reschke porta intuizione e rigore reali in questo caso. Per favore, vota la sua risposta. Questo sembra essere rotto in FF ( https://bugzilla.mozilla.org/show_bug. cgi? id = 433613 ) e IE ma funziona in Opera, Safari e Chrome. http://greenbytes.de/tech/tc2231/#inlwithasciifilenamepdf

È stato utile?

Soluzione

Parte del problema è che il RFC 2183 pertinente non indica realmente cosa a che fare con un tipo di disposizione di "inline" e un nome file.

Inoltre, per quanto ne so, l'unico UA che utilizza effettivamente il nome file per type = inline è Firefox (vedi test case ).

Infine, non è ovvio che l'API del plug-in renda effettivamente disponibili tali informazioni (forse qualcuno che ha familiarità con l'API può elaborare).

Detto questo, ho inviato un puntatore a questa domanda a una persona Adobe; forse le persone giuste daranno un'occhiata.

Correlato: vedere il tentativo di chiarire la disposizione dei contenuti in HTTP in draft-reschke-rfc2183-in-http - si tratta di primi lavori in corso, feedback apprezzato.

Aggiornamento: ho aggiunto un test case , che sembra indicare che il lettore Acrobat plug-in non utilizza le intestazioni di risposta (in Firefox), sebbene l'API del plug-in fornisca loro l'accesso.

Altri suggerimenti

Imposta anche il nome file in ContentType . Questo dovrebbe risolvere il problema.

context.Response.ContentType = "application/pdf; name=" + fileName;
// the usual stuff
context.Response.AddHeader("content-disposition", "inline; filename=" + fileName);

Dopo aver impostato l'intestazione di disposizione del contenuto, aggiungere anche un'intestazione di lunghezza del contenuto, quindi utilizzare binarywrite per eseguire lo streaming del PDF.

context.Response.AddHeader("Content-Length", fileBytes.Length.ToString());
context.Response.BinaryWrite(fileBytes);

Come te, ho provato e ho cercato di farlo funzionare. Alla fine ho rinunciato a questa idea e ho optato per una soluzione alternativa.

Sto usando ASP.NET MVC Framework, quindi ho modificato i miei percorsi per quel controller / azione per assicurarmi che il file PDF servito sia l'ultima parte della porzione di posizione dell'URI (prima della stringa di query), e passa tutto il resto nella stringa di query.

Ad esempio:

Vecchio URI:

http: // server / app / report / showpdf? param1 = foo & amp; param2 = bar & amp; nomefile = myreport.pdf

Nuovo URI:

http: // server / app / report / showpdf / myreport. pdf param1 = foo & amp;? param2 = bar

L'intestazione risultante è esattamente come quella che hai descritto (il tipo di contenuto è application / pdf, la disposizione è in linea, il nome del file è inutilmente parte dell'intestazione). Acrobat lo mostra nella finestra del browser (nessun salvataggio come finestra di dialogo) e il nome file che viene compilato automaticamente se un utente fa clic sul pulsante Salva Acrobat è il nome file del rapporto.

Alcune considerazioni:

Affinché i nomi dei file appaiano decenti, non dovrebbero avere caratteri di escape (ovvero spazi, ecc.) ... il che è un po 'limitante. I miei nomi di file sono generati automaticamente in questo caso e prima c'erano degli spazi, che venivano visualizzati come '% 20' nel risultante nome della finestra di dialogo di salvataggio. Ho appena sostituito gli spazi con caratteri di sottolineatura e questo ha funzionato.

Questa non è la migliore soluzione per tutti i nomi, ma funziona. Significa anche che devi avere il nome file disponibile per renderlo parte dell'URI originale, che potrebbe interferire con il flusso di lavoro del tuo programma. Se al momento viene generato o recuperato da un database durante la chiamata sul lato server che genera il PDF, potrebbe essere necessario spostare il codice che genera il nome file in javascript come parte dell'invio di un modulo o se proviene da un database renderlo un chiamata ajax rapida per ottenere il nome file durante la creazione dell'URL che risulta nel PDF incorporato.

Se stai prendendo il nome del file da un input dell'utente su un modulo, questo dovrebbe essere convalidato per non contenere caratteri di escape, il che infastidirà gli utenti.

Spero che sia d'aiuto.

Prova a posizionare il nome del file alla fine dell'URL, prima di qualsiasi altro parametro. Questo ha funzionato per me. http://www.setasign.de/support/ tips-and-tricks / filename-in-browser plugin /

In ASP.NET 2.0 cambia l'URL da

http://www. server.com/DocServe.aspx?DocId=XXXXXXX

a

http://www. server.com/DocServe.aspx/MySaveAsFileName?DocId=XXXXXXX

Funziona con Acrobat 8 ??e il nome file SaveAs predefinito è ora MySaveAsFileName.pdf .

Tuttavia, devi limitare i caratteri consentiti in MySaveAsFileName (nessun punto, ecc.).

Il mod_rewrite di Apache può risolverlo.

Ho un servizio web con un endpoint in /foo/getDoc.service . Naturalmente Acrobat salverà i file come getDoc.pdf . Ho aggiunto le seguenti righe in apache.conf :

LoadModule     RewriteModule         modules/mod_rewrite.so
RewriteEngine  on
RewriteRule    ^/foo/getDoc/(.*)$    /foo/getDoc.service     [P,NE]

Ora quando richiedo /foo/getDoc/filename.pdf?bar&qux , viene riscritto internamente in /foo/getDoc.service?bar&qux , quindi sto colpendo l'endpoint corretto del servizio web, ma Acrobat pensa che salverà il mio file come filename.pdf .

Se usi asp.net, puoi controllare il nome del file pdf attraverso il nome del file della pagina (url). Come hanno scritto altri utenti, Acrobat è un po 's ... quando sceglie il nome del file pdf quando si preme " salva " pulsante: prende il nome della pagina, rimuove l'estensione e aggiunge " .pdf " ;. Quindi /foo/bar/GetMyPdf.aspx fornisce GetMyPdf.pdf.

L'unica soluzione che ho trovato è gestire " dinamico " i nomi delle pagine tramite un gestore asp.net:

  • crea una classe che implementa IHttpHandler
  • mappa un gestore in web.config associato alla classe

Mappatura1: tutte le pagine hanno una radice comune (MyDocument_):

<httpHandlers>  
<add verb="*" path="MyDocument_*.ashx" type="ITextMiscWeb.MyDocumentHandler"/>

Mapping2: nome file completamente gratuito (è necessaria una cartella nel percorso):

<add verb="*" path="/CustomName/*.ashx" type="ITextMiscWeb.MyDocumentHandler"/>

Alcuni suggerimenti qui (il pdf è creato dinamicamente usando iTextSharp):
http: // fhtino. blogspot.com/2006/11/how-to-show-or-download-pdf-file-from.html

Invece di un allegato puoi provare in linea:

Response.AddHeader("content-disposition", "inline;filename=MyFile.pdf");

Ho usato in linea in una precedente applicazione Web che ha generato l'output di Crystal Reports in PDF e che l'ho inviato nel browser all'utente.

Finestra di dialogo per il download dei file (PDF) con l'opzione salva e apri

Punti da ricordare:

  1. Restituisce Stream con la dimensione dell'array corretta dal servizio
  2. Leggi la disposizione dei byte dallo stream con la lunghezza corretta dei byte sulla base della lunghezza dello stream.
  3. imposta il tipo di contenuto corretto

Ecco il codice per leggere lo stream e aprire la finestra di dialogo Download file per file PDF

private void DownloadSharePointDocument()
{
    Uri uriAddress = new Uri("http://hyddlf5187:900/SharePointDownloadService/FulfillmentDownload.svc/GetDocumentByID/1/drmfree/");
    HttpWebRequest req = WebRequest.Create(uriAddress) as HttpWebRequest;
    // Get response   
    using (HttpWebResponse httpWebResponse = req.GetResponse() as HttpWebResponse)
    {
        Stream stream = httpWebResponse.GetResponseStream();
        int byteCount = Convert.ToInt32(httpWebResponse.ContentLength);
        byte[] Buffer1 = new byte[byteCount];
        using (BinaryReader reader = new BinaryReader(stream))
        {
            Buffer1 = reader.ReadBytes(byteCount);
        }
        Response.Clear();
        Response.ClearHeaders();
        // set the content type to PDF 
        Response.ContentType = "application/pdf";
        Response.AddHeader("Content-Disposition", "attachment;filename=Filename.pdf");
        Response.Buffer = true;
        Response.BinaryWrite(Buffer1);
        Response.Flush();
       // Response.End();
    }
}

Credo che questo sia già stato menzionato in un modo o nell'altro, ma cercherò di affermarlo con le mie parole.

Piuttosto che questo:

/bar/sessions/958d8a22-0/views/1493881172/export?format=application/pdf&no-attachment=true

Uso questo:

/bar/sessions/958d8a22-0/views/1493881172/NameThatIWantPDFToBe.pdf?GeneratePDF=1

Anziché avere " export " elaborare la richiesta, quando arriva una richiesta, cerco nell'URL GeneratePDF = 1. Se trovato, eseguo qualunque codice fosse in esecuzione in " export " piuttosto che consentire al mio sistema di tentare di cercare e pubblicare un PDF nella posizione /bar/sessions/958d8a22-0/views/1493881172/NameThatIWantPDFToBe.pdf . Se GeneratePDF non viene trovato nell'URL, invio semplicemente il file richiesto. (nota che non posso semplicemente reindirizzare al file richiesto, altrimenti finirei in un ciclo infinito)

Potresti avere sempre due link. Uno che apre il documento all'interno del browser e un altro per scaricarlo (utilizzando un tipo di contenuto errato). Questo è ciò che fa Gmail.

Per chiunque stia ancora guardando questo, ho usato la soluzione trovata qui e qui ha funzionato meravigliosamente. Grazie Fabrizio!

Il modo in cui l'ho risolto (con PHP) è il seguente:

Supponi che il tuo URL sia SomeScript.php? id = ID & data; DATA = DATA e che il file che vuoi usare sia TEST.pdf .

Cambia l'URL in SomeScript.php / id / ID / data / DATA / EXT / TEST.pdf .

È importante che l'ultimo parametro sia il nome del file che Adobe desidera utilizzare ("EXT" può riguardare qualsiasi cosa). Assicurati che non ci siano caratteri speciali nella stringa sopra, BTW.

Ora, nella parte superiore di SomeScript.php , aggiungi:

Il modo in cui l'ho risolto (con PHP) è il seguente:

Supponi che il tuo URL sia SomeScript.php? id = ID & data; DATA = DATA e che il file che vuoi usare sia TEST.pdf .

Cambia l'URL in SomeScript.php / id / ID / data / DATA / EXT / TEST.pdf .

È importante che l'ultimo parametro sia il nome del file che Adobe desidera utilizzare ("EXT" può riguardare qualsiasi cosa). Assicurati che non ci siano caratteri speciali nella stringa sopra, BTW.

Ora, nella parte superiore di SomeScript.php , aggiungi:

function MakeFriendlyURI($URI, $ScriptName) {

/* Need to remove everything up to the script name */
$MyName = '/^.*'.preg_quote(basename($ScriptName)."/", '/').'/';
$Str = preg_replace($MyName,'',$URI);
$RequestArray = array();

/* Breaks down like this
      0      1     2     3     4     5
    PARAM1/VAL1/PARAM2/VAL2/PARAM3/VAL3
*/

$tmp = explode('/',$Str);   
/* Ok so build an associative array with Key->value
   This way it can be returned back to 

Il modo in cui l'ho risolto (con PHP) è il seguente:

Supponi che il tuo URL sia SomeScript.php? id = ID & data; DATA = DATA e che il file che vuoi usare sia TEST.pdf .

Cambia l'URL in SomeScript.php / id / ID / data / DATA / EXT / TEST.pdf .

È importante che l'ultimo parametro sia il nome del file che Adobe desidera utilizzare ("EXT" può riguardare qualsiasi cosa). Assicurati che non ci siano caratteri speciali nella stringa sopra, BTW.

Ora, nella parte superiore di SomeScript.php , aggiungi:

Il modo in cui l'ho risolto (con PHP) è il seguente:

Supponi che il tuo URL sia SomeScript.php? id = ID & data; DATA = DATA e che il file che vuoi usare sia TEST.pdf .

Cambia l'URL in SomeScript.php / id / ID / data / DATA / EXT / TEST.pdf .

È importante che l'ultimo parametro sia il nome del file che Adobe desidera utilizzare ("EXT" può riguardare qualsiasi cosa). Assicurati che non ci siano caratteri speciali nella stringa sopra, BTW.

Ora, nella parte superiore di SomeScript.php , aggiungi:

<*>

Quindi aggiungi questa funzione a SomeScript.php (o alla tua libreria di funzioni):

<*>

Ora $ _REQUEST (o $ _GET se preferisci) ora si accede come il normale $ _REQUEST ['id'] , $ _REQUEST ['dati'] , ecc.

E Adobe utilizzerà il nome file desiderato come salvataggio predefinito o informazioni e-mail quando lo si invia in linea.

REQUEST = MakeFriendlyURI(

Il modo in cui l'ho risolto (con PHP) è il seguente:

Supponi che il tuo URL sia SomeScript.php? id = ID & data; DATA = DATA e che il file che vuoi usare sia TEST.pdf .

Cambia l'URL in SomeScript.php / id / ID / data / DATA / EXT / TEST.pdf .

È importante che l'ultimo parametro sia il nome del file che Adobe desidera utilizzare ("EXT" può riguardare qualsiasi cosa). Assicurati che non ci siano caratteri speciali nella stringa sopra, BTW.

Ora, nella parte superiore di SomeScript.php , aggiungi:

<*>

Quindi aggiungi questa funzione a SomeScript.php (o alla tua libreria di funzioni):

<*>

Ora $ _REQUEST (o $ _GET se preferisci) ora si accede come il normale $ _REQUEST ['id'] , $ _REQUEST ['dati'] , ecc.

E Adobe utilizzerà il nome file desiderato come salvataggio predefinito o informazioni e-mail quando lo si invia in linea.

SERVER['PHP\_SELF'],

Il modo in cui l'ho risolto (con PHP) è il seguente:

Supponi che il tuo URL sia SomeScript.php? id = ID & data; DATA = DATA e che il file che vuoi usare sia TEST.pdf .

Cambia l'URL in SomeScript.php / id / ID / data / DATA / EXT / TEST.pdf .

È importante che l'ultimo parametro sia il nome del file che Adobe desidera utilizzare ("EXT" può riguardare qualsiasi cosa). Assicurati che non ci siano caratteri speciali nella stringa sopra, BTW.

Ora, nella parte superiore di SomeScript.php , aggiungi:

<*>

Quindi aggiungi questa funzione a SomeScript.php (o alla tua libreria di funzioni):

<*>

Ora $ _REQUEST (o $ _GET se preferisci) ora si accede come il normale $ _REQUEST ['id'] , $ _REQUEST ['dati'] , ecc.

E Adobe utilizzerà il nome file desiderato come salvataggio predefinito o informazioni e-mail quando lo si invia in linea.

SERVER['SCRIPT_FILENAME']);

Quindi aggiungi questa funzione a SomeScript.php (o alla tua libreria di funzioni):

<*>

Ora $ _REQUEST (o $ _GET se preferisci) ora si accede come il normale $ _REQUEST ['id'] , $ _REQUEST ['dati'] , ecc.

E Adobe utilizzerà il nome file desiderato come salvataggio predefinito o informazioni e-mail quando lo si invia in linea.

REQUEST or

Il modo in cui l'ho risolto (con PHP) è il seguente:

Supponi che il tuo URL sia SomeScript.php? id = ID & data; DATA = DATA e che il file che vuoi usare sia TEST.pdf .

Cambia l'URL in SomeScript.php / id / ID / data / DATA / EXT / TEST.pdf .

È importante che l'ultimo parametro sia il nome del file che Adobe desidera utilizzare ("EXT" può riguardare qualsiasi cosa). Assicurati che non ci siano caratteri speciali nella stringa sopra, BTW.

Ora, nella parte superiore di SomeScript.php , aggiungi:

Il modo in cui l'ho risolto (con PHP) è il seguente:

Supponi che il tuo URL sia SomeScript.php? id = ID & data; DATA = DATA e che il file che vuoi usare sia TEST.pdf .

Cambia l'URL in SomeScript.php / id / ID / data / DATA / EXT / TEST.pdf .

È importante che l'ultimo parametro sia il nome del file che Adobe desidera utilizzare ("EXT" può riguardare qualsiasi cosa). Assicurati che non ci siano caratteri speciali nella stringa sopra, BTW.

Ora, nella parte superiore di SomeScript.php , aggiungi:

<*>

Quindi aggiungi questa funzione a SomeScript.php (o alla tua libreria di funzioni):

<*>

Ora $ _REQUEST (o $ _GET se preferisci) ora si accede come il normale $ _REQUEST ['id'] , $ _REQUEST ['dati'] , ecc.

E Adobe utilizzerà il nome file desiderato come salvataggio predefinito o informazioni e-mail quando lo si invia in linea.

REQUEST = MakeFriendlyURI(

Il modo in cui l'ho risolto (con PHP) è il seguente:

Supponi che il tuo URL sia SomeScript.php? id = ID & data; DATA = DATA e che il file che vuoi usare sia TEST.pdf .

Cambia l'URL in SomeScript.php / id / ID / data / DATA / EXT / TEST.pdf .

È importante che l'ultimo parametro sia il nome del file che Adobe desidera utilizzare ("EXT" può riguardare qualsiasi cosa). Assicurati che non ci siano caratteri speciali nella stringa sopra, BTW.

Ora, nella parte superiore di SomeScript.php , aggiungi:

<*>

Quindi aggiungi questa funzione a SomeScript.php (o alla tua libreria di funzioni):

<*>

Ora $ _REQUEST (o $ _GET se preferisci) ora si accede come il normale $ _REQUEST ['id'] , $ _REQUEST ['dati'] , ecc.

E Adobe utilizzerà il nome file desiderato come salvataggio predefinito o informazioni e-mail quando lo si invia in linea.

SERVER['PHP\_SELF'],

Il modo in cui l'ho risolto (con PHP) è il seguente:

Supponi che il tuo URL sia SomeScript.php? id = ID & data; DATA = DATA e che il file che vuoi usare sia TEST.pdf .

Cambia l'URL in SomeScript.php / id / ID / data / DATA / EXT / TEST.pdf .

È importante che l'ultimo parametro sia il nome del file che Adobe desidera utilizzare ("EXT" può riguardare qualsiasi cosa). Assicurati che non ci siano caratteri speciali nella stringa sopra, BTW.

Ora, nella parte superiore di SomeScript.php , aggiungi:

<*>

Quindi aggiungi questa funzione a SomeScript.php (o alla tua libreria di funzioni):

<*>

Ora $ _REQUEST (o $ _GET se preferisci) ora si accede come il normale $ _REQUEST ['id'] , $ _REQUEST ['dati'] , ecc.

E Adobe utilizzerà il nome file desiderato come salvataggio predefinito o informazioni e-mail quando lo si invia in linea.

SERVER['SCRIPT_FILENAME']);

Quindi aggiungi questa funzione a SomeScript.php (o alla tua libreria di funzioni):

<*>

Ora $ _REQUEST (o $ _GET se preferisci) ora si accede come il normale $ _REQUEST ['id'] , $ _REQUEST ['dati'] , ecc.

E Adobe utilizzerà il nome file desiderato come salvataggio predefinito o informazioni e-mail quando lo si invia in linea.

GET */ for ($i=0;$i < count($tmp); $i = $i+2){ $RequestArray[$tmp[$i]] = $tmp[$i+1]; } return $RequestArray; }//EO MakeFriendlyURI

Quindi aggiungi questa funzione a SomeScript.php (o alla tua libreria di funzioni):

<*>

Ora $ _REQUEST (o $ _GET se preferisci) ora si accede come il normale $ _REQUEST ['id'] , $ _REQUEST ['dati'] , ecc.

E Adobe utilizzerà il nome file desiderato come salvataggio predefinito o informazioni e-mail quando lo si invia in linea.

REQUEST = MakeFriendlyURI(

Il modo in cui l'ho risolto (con PHP) è il seguente:

Supponi che il tuo URL sia SomeScript.php? id = ID & data; DATA = DATA e che il file che vuoi usare sia TEST.pdf .

Cambia l'URL in SomeScript.php / id / ID / data / DATA / EXT / TEST.pdf .

È importante che l'ultimo parametro sia il nome del file che Adobe desidera utilizzare ("EXT" può riguardare qualsiasi cosa). Assicurati che non ci siano caratteri speciali nella stringa sopra, BTW.

Ora, nella parte superiore di SomeScript.php , aggiungi:

<*>

Quindi aggiungi questa funzione a SomeScript.php (o alla tua libreria di funzioni):

<*>

Ora $ _REQUEST (o $ _GET se preferisci) ora si accede come il normale $ _REQUEST ['id'] , $ _REQUEST ['dati'] , ecc.

E Adobe utilizzerà il nome file desiderato come salvataggio predefinito o informazioni e-mail quando lo si invia in linea.

SERVER['PHP\_SELF'],

Il modo in cui l'ho risolto (con PHP) è il seguente:

Supponi che il tuo URL sia SomeScript.php? id = ID & data; DATA = DATA e che il file che vuoi usare sia TEST.pdf .

Cambia l'URL in SomeScript.php / id / ID / data / DATA / EXT / TEST.pdf .

È importante che l'ultimo parametro sia il nome del file che Adobe desidera utilizzare ("EXT" può riguardare qualsiasi cosa). Assicurati che non ci siano caratteri speciali nella stringa sopra, BTW.

Ora, nella parte superiore di SomeScript.php , aggiungi:

<*>

Quindi aggiungi questa funzione a SomeScript.php (o alla tua libreria di funzioni):

<*>

Ora $ _REQUEST (o $ _GET se preferisci) ora si accede come il normale $ _REQUEST ['id'] , $ _REQUEST ['dati'] , ecc.

E Adobe utilizzerà il nome file desiderato come salvataggio predefinito o informazioni e-mail quando lo si invia in linea.

SERVER['SCRIPT_FILENAME']);

Quindi aggiungi questa funzione a SomeScript.php (o alla tua libreria di funzioni):

<*>

Ora $ _REQUEST (o $ _GET se preferisci) ora si accede come il normale $ _REQUEST ['id'] , $ _REQUEST ['dati'] , ecc.

E Adobe utilizzerà il nome file desiderato come salvataggio predefinito o informazioni e-mail quando lo si invia in linea.

Sono stato reindirizzato qui perché ho lo stesso problema. Ho anche provato la soluzione alternativa di Troy Howard ma non sembra funzionare.

L'approccio che ho fatto su questo è di NON UTILIZZARE MAI PIÙ l'oggetto response per scrivere il file al volo. Poiché il PDF è già esistente sul server, quello che ho fatto è stato reindirizzare la mia pagina puntando a quel file PDF. Funziona alla grande.

http://forums.asp.net/t/143631.aspx

Spero che la mia vaga spiegazione ti abbia dato un'idea.

Crediti a Vivek .


Nginx

location /file.pdf
{
    # more_set_headers "Content-Type: application/pdf; name=save_as_file.pdf";
    add_header Content-Disposition "inline; filename=save_as_file.pdf";
    alias /var/www/file.pdf;
}

Verifica con

curl -I https://example.com/file.pdf

Firefox 62.0b5 (64 bit): OK.

Chrome 67.0.3396.99 (64 bit): OK.

IE 11: nessun commento.

Prova questo, se il tuo eseguibile è " get.cgi "

http: //server,org/get.cgi/filename .pdf? file = filename.pdf

Sì, è completamente pazzo. Non esiste alcun file chiamato " nomefile.pdf " sul server c'è una directory sotto l'eseguibile get.cgi.

Ma sembra funzionare. Il server ignora il nomefile.pdf e il lettore pdf ignora il " get.cgi "

Dan

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