2014-09-05 18 views
6

Quando si esegue il codice di seguito da un browser desktop, non ci sono problemi.Download non riuscito sul browser mobile (Android) quando si utilizza cfheader e cfcontent in Coldfusion

Tuttavia, quando provo da Android Chrome o dal browser Android predefinito, ottengo sempre un messaggio "Scarica non riuscito".

Codice:

<cfsetting enablecfoutputonly="yes"> 

<cfcontent type="text/calendar" reset="Yes"> 
<cfheader name="Content-Disposition" value='inline; filename="newAppointment.ics"'> 

<cfoutput>BEGIN:VCALENDAR 
PRODID:-//Some organization//some application//EN 
VERSION:2.0 
METHOD:REQUEST 
BEGIN:VEVENT 
UID:[email protected]://localhost/www/ 
CREATED:20140925T072912Z 
DTSTAMP:20140922T090500Z 
DTSTART:20140922T090500Z 
DTEND:20140922T100500Z 
DESCRIPTION:Please attend this sample meeting 
SUMMARY:Invitation to attend training 
LOCATION:Earth 
ATTENDEE;RSVP=TRUE:mailto:[email protected] 
ORGANIZER;[email protected]:mailto:[email protected] 
LAST-MODIFIED:20140925T072912Z 
PRIORITY:5 
SEQUENCE:0 
STATUS:CONFIRMED 
TRANSP:TRANSPARENT 
END:VEVENT 
END:VCALENDAR</cfoutput> 

<cfsetting enablecfoutputonly="no"> 

Ho provato con entrambi "text/calendar" e "application/octet-stream" per il tipo di contenuto, ed entrambi "in linea" e "attaccamento" per la disposizione dei contenuti. Ho anche provato il nome del file con e senza virgolette ... tutto inutilmente.

Stiamo eseguendo Coldfusion 10 su un server IIS e abbiamo aggiunto questa configurazione al server in modo da poter scaricare un file .ics direttamente dal server. Tuttavia, vogliamo generare un file monouso in modo dinamico e servirlo all'utente. impostazione del server

IIS:

<configuration> 
    <system.webServer> 
     <staticContent> 
      <remove fileExtension=".ics" /> 
      <mimeMap fileExtension=".ics" mimeType="application/octet-stream" /> 
     </staticContent> 
    </system.webServer> 
</configuration> 

Utilizzando il debug remoto di Chrome, posso vedere questo venire attraverso come intestazione di risposta dal codice di cui sopra. (Nota: vedo un sacco di persone che mettono cfheader prima, quindi cfcontent ... ma se seguo questo ordine, la disposizione del contenuto non viene passata così ho messo prima cfcontent.)

Intestazione di risposta:

HTTP/1.1 200 OK 
Connection: close 
Date: Fri, 05 Sep 2014 21:31:31 GMT 
Server: Microsoft-IIS/6.0 
P3P: CP='NOI DSP COR LAW NID CUR ADMa OUR DELa IND PHY ONL UNI PUR COM NAV STA' 
Vary: Accept-Encoding,User-Agent 
Content-Disposition: inline; filename="newAppointment.ics" 
Content-Type: text/calendar;charset=UTF-8 

Ho setacciato Internet e la cosa più vicina che ho trovato era un'altra domanda di stackoverflow con alcuni suggerimenti ma nessuna risposta accettata. Inoltre ... essendo un nuovo utente, non posso commentare per chiedere se è stata trovata una risposta.

cfheader cfcontent Mobile Browser download unsuccessful

ho cercato di dare il maggior numero di dettagli che mi viene in mente. Fammi sapere se ulteriori informazioni sarebbero utili per risolvere la stranezza.

Come sempre, qualsiasi aiuto sarebbe molto apprezzato.

+0

Il tuo codice funziona su CF9/IIS7 servire a Chrome su Adroid 4.2.2. L'intestazione della tua risposta suggerisce che sei su IIS6. Non ho una risposta, ma la mia impressione sarebbe che questo è il problema. – CfSimplicity

risposta

0

Provare a cambiare questo da "in linea" a "attacco"

<cfheader name="Content-Disposition" value='inline; filename="newAppointment.ics"'> 

<cfheader name="Content-Disposition" value="attachment; filename=""newAppointment.ics""">