2014-09-05 13 views
6

Wenn ich den folgenden Code von einem Desktop-Browser ausführen, gibt es kein Problem.Herunterladen nicht erfolgreich auf Mobile Browser (Android) bei Verwendung von cfheader und cfcontent in Coldfusion

Wenn ich es jedoch entweder von Android Chrome oder dem Standard-Android-Browser ausprobiere, erhalte ich immer die Meldung "Download nicht erfolgreich".

Code:

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

habe ich versucht, mit beiden "text/calendar" und "application/octet-stream" für den Inhaltstyp, und beide "inline" und "Anlage" für den Inhalt Disposition. Ich habe auch den Dateinamen mit und ohne Anführungszeichen versucht ... alles ohne Erfolg.

Wir betreiben Coldfusion 10 auf einem IIS-Server, und wir haben diese Konfiguration zum Server hinzugefügt, so dass wir jetzt eine .ics-Datei direkt vom Server herunterladen können. Wir möchten jedoch eine einzelne Verwendungsdatei dynamisch generieren und sie dem Benutzer bereitstellen.

IIS-Server-Einstellung:

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

Remote-Debugging Mit Chrome, kann ich sehen, das oben aus dem Code als Antwort-Header kommt durch. (Hinweis: Ich sehe viele Leute zuerst cfheader, dann cfcontent ... aber wenn ich dieser Reihenfolge folge, wird die Inhaltsdisposition nicht weitergegeben, also habe ich zuerst cfcontent gesetzt.)

Antwort Header:

Ich habe das Internet durchforstet, und die nächste Sache, die ich gefunden habe, war eine andere stackoverflow Frage mit einigen Vorschlägen, aber keine akzeptierte Antwort. Außerdem ... als neuer Benutzer kann ich nicht dazu Stellung nehmen, um zu fragen, ob eine Antwort gefunden wurde.

cfheader cfcontent Mobile Browser download unsuccessful

Ich habe versucht, so viele Details zu geben, die ich mir vorstellen kann. Lassen Sie mich wissen, ob weitere Informationen hilfreich bei der Lösung der Kuriosität sind.

Wie immer würde jede Hilfe sehr geschätzt werden.

+0

Ihr Code funktioniert auf CF9/IIS7 dient, auf Adroid 4.2.2 Chrome. Ihr Antwort-Header schlägt vor, dass Sie sich auf IIS6 befinden. Ich habe keine Antwort, aber meine Vermutung ist, dass das Problem dort liegt. – CfSimplicity

Antwort

0

Versuchen Sie, diese von "inline" Wechsel zu "attachment"

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

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