2014-09-05 13 views
6

Khi tôi chạy mã bên dưới từ trình duyệt trên máy tính để bàn, không có vấn đề gì.Tải xuống không thành công trên trình duyệt di động (Android) khi sử dụng cfheader và cfcontent trong Coldfusion

Tuy nhiên, khi tôi thử từ Android Chrome hoặc trình duyệt Android mặc định, tôi luôn nhận được thông báo "Tải xuống không thành công".

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

Tôi đã cố gắng sử dụng cả "text/lịch" và "application/octet-stream" cho các loại nội dung, và cả "nội tuyến" và "đính kèm" cho việc xử lý nội dung. Tôi cũng đã thử tên tệp có và không có dấu ngoặc kép ... tất cả đều không có kết quả.

Chúng tôi đang chạy Coldfusion 10 trên máy chủ IIS và chúng tôi đã thêm cấu hình này vào máy chủ để chúng tôi có thể tải xuống tệp .ics trực tiếp từ máy chủ ngay bây giờ. Tuy nhiên, chúng tôi muốn tạo một tệp sử dụng một cách linh hoạt và phân phối nó cho người dùng.

máy chủ IIS thiết lập:

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

Sử dụng Remote Debugging của Chrome, tôi có thể thấy điều này qua đến như tiêu đề Phản hồi từ các mã trên. (Lưu ý: Tôi thấy rất nhiều người đặt cfheader đầu tiên, sau đó cfcontent ... nhưng nếu tôi làm theo thứ tự đó, việc bố trí nội dung không được truyền đi vì vậy tôi đã đặt cfcontent trước.)

Phản hồi Tiêu đề:

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 

Tôi đã xóa Internet và điều gần nhất tôi tìm thấy là một câu hỏi xếp chồng khác với một số đề xuất nhưng không có câu trả lời được chấp nhận. Ngoài ra ... là một người dùng mới, tôi không thể bình luận về nó để hỏi nếu một câu trả lời đã được tìm thấy.

cfheader cfcontent Mobile Browser download unsuccessful

tôi đã cố gắng để cung cấp cho càng nhiều chi tiết mà tôi có thể nghĩ đến. Hãy cho tôi biết nếu có thêm thông tin sẽ hữu ích trong việc giải quyết sự kỳ quặc.

Như mọi khi, mọi trợ giúp sẽ được đánh giá cao.

+0

Mã của bạn hoạt động trên CF9/IIS7 phục vụ cho Chrome trên Adroid 4.2.2. Tiêu đề phản hồi của bạn cho thấy bạn đang ở trên IIS6. Không có câu trả lời, nhưng linh cảm của tôi sẽ là vấn đề nằm ở đó. – CfSimplicity

Trả lời

0

Hãy thử thay đổi này từ "inline" để "đính kèm"

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

<cfheader name="Content-Disposition" value="attachment; filename=""newAppointment.ics"""> 
Các vấn đề liên quan