2012-05-30 79 views
1

我在網絡表單上顯示了一個結果集。用戶可用的選項之一是將結果下載爲.xls電子表格。我正在嘗試更新這個經典的asp代碼,以便下載頁面可以保存到iPad上,然後用戶可以按照他們的意願查看QuickOffice。將文件下載到ipad

到目前爲止的代碼是:

Response.Clear() 
Response.Buffer = true 
Response.AddHeader "Content-Disposition", "attachment;filename=results.xls" 
Response.ContentType = "application/octet-stream" 

頁上,然後去和運行,並已經產生的一切後:

response.flush() 
response.clear() 

的問題是,而不是允許要保存的內容,通過對話,內容顯示在瀏覽器中的原始.asp頁眉,我該如何阻止?

編輯:

我一直在嘗試這種方法:

Response.Buffer = true 
Response.Clear() 
Response.ContentType = "application/octet-stream" 
Response.AddHeader "Content-Disposition", "attachment;filename=ConversionResult.xls;" 

'and i send the file using the stream as 
Set adoStream = CreateObject("ADODB.Stream") 
adoStream.Open() 
adoStream.Type = 1 
adoStream.LoadFromFile(Server.MapPath("xls/streamtest.xlsx")) 
Response.BinaryWrite adoStream.Read() 
adoStream.Close 
Set adoStream = Nothing 
response.Flush 
response.end 

用戶對文件結構權限,但什麼也沒發生,瀏覽器只是旋轉。首先,讓我以某種方式爲自己辯護......我沒有iPad,只花了一小段時間與我一起玩。在嘗試下載文件時,我也沒有看到「另存爲」或類似的對話框,並且正在閱讀關於iPad功能的過程。

有一個safari下載管理器插件,但我試圖確定這是否只適用於監獄破碎的ipad顯然這不是我們的普通客戶的選項。

謝謝。

+0

您確定iPad瀏覽器允許_downloading_或_saving_?至少我還沒有在我的iPod上看到一個文件「瀏覽」對話框... – sarnold

+0

是的,你可以,或者我已經被告知你可以,但是它的做法略有不同!我想知道這種方法有什麼問題?! – flavour404

+0

你用二進制輸出你的文本嗎? 'response.binaryWrite'? –

回答

0

我想你必須使用FSO將它流式傳輸到一個臨時文件,然後鏈接到它。 這樣Safari(ipad)應該給出選項來保存。