1
我正在開發導出日曆的應用程序。我的問題是日曆下載而不是用Outlook打開。這裏是我的代碼:從瀏覽器中打開.ics文件
1)在主網頁的圖片導出鏈接日曆:
<img src="/calendar.png" width="32" Style="width: 32px; height:32px;" title="Calendar" onClick="javascript:document.getElementById('exportCal').submit();">
<form id="exportCal" action="Calendar.jsp" target="_blank" method="post">
<INPUT TYPE="hidden" ID="calendarData" NAME="calendarData" VALUE=""/>
</form>
2)在該鏈接重定向到JSP,我產生的.ics(使用iCal4j庫)文件並將其附加到響應中:
response.setHeader ("Content-Disposition", "inline;filename=\"mycalendar.ics\"");
response.setContentType("text/calendar");
Calendar calendar = new Calendar();
calendar.getProperties().add(new ProdId("-//Ben Fortuna//iCal4j 1.0//EN"));
calendar.getProperties().add(Version.VERSION_2_0);
calendar.getProperties().add(CalScale.GREGORIAN);
java.util.Calendar cal = java.util.Calendar.getInstance();
cal.set(java.util.Calendar.MONTH, java.util.Calendar.DECEMBER);
cal.set(java.util.Calendar.DAY_OF_MONTH, 25);
// initialise as an all-day event..
VEvent christmas = new VEvent(new Date(cal.getTime()), "Christmas Day");
// Generate a UID for the event..
UidGenerator ug = new UidGenerator("1");
christmas.getProperties().add(ug.generateUid());
calendar.getComponents().add(christmas);
System.out.println(calendar);
ServletOutputStream fout = response.getOutputStream();
CalendarOutputter outputter = new CalendarOutputter();
outputter.output(calendar, fout);
fout.flush();
然後下載.ics文件。但我真正想做的是用Outlook打開它。有沒有辦法做到這一點?
在此先感謝!
我知道webcal協議,但我認爲它只適用於靜態文件。因爲爲了放置這樣的鏈接,您應該先創建(並存儲)該文件,然後鏈接到該文件。因此,每次打開包含鏈接的頁面時,都會生成新的日曆文件(每個用戶都不相同),可能會或可能不會下載。另外,我已經嘗試過這種解決方案,但我不知道如何將文件保存在服務器中,以便以後可以下載。如果我錯了,請糾正我,並指出我正確的方向,因爲我是一個jsp新手。非常感謝!! – Neets 2012-04-19 05:39:54