您好,登錄后才能下訂單哦!
這篇文章跟大家分析一下“如何進(jìn)行WebWork文件下載”。內(nèi)容詳細(xì)易懂,對(duì)“如何進(jìn)行WebWork文件下載”感興趣的朋友可以跟著小編的思路慢慢深入來閱讀一下,希望閱讀后能夠?qū)Υ蠹矣兴鶐椭O旅娓【幰黄鹕钊雽W(xué)習(xí)“如何進(jìn)行WebWork文件下載”的知識(shí)吧。
首先在一個(gè)ACTION中,如果判斷有權(quán)限進(jìn)行文件下載。
1、讀出該下載文件,并生成一個(gè)流。這是WebWork文件下載的***步,文件名應(yīng)當(dāng)從請(qǐng)求的request中讀出,或從用戶的表中取出。
public String downLoadFile(String fileName) { try { File input = new File("e:/engilish literature.doc"); docStream = new FileInputStream(input); contentDisposition = "filename=\"test.txt\""; } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } return "download"; }
2、將輸出導(dǎo)向到一個(gè)特殊的RESULT中去。在WebWork文件下載中叫做Steam Result。
<action name="register" class= "com.job2easy.web.user.RegisterAction"> <RESULT < SPAN>name="success" type="dispatcher"> <PARAM < SPAN>name="location">/home /register-result.jsp <RESULT < SPAN>name="input"> <PARAM < SPAN>name="location">/home/register.jsp <RESULT < SPAN>name="download" type="stream"> <PARAM < SPAN>name="contentType">application /x-msdownload <PARAM < SPAN>name="inputName">docStream <PARAM < SPAN>name="bufferSize">1024 <PARAM < SPAN>name="contentDisposition">$ {contentDisposition} <INTERCEPTOR-REF < SPAN>name="params"/> action>
3、WebWork文件下載參數(shù)。這中間有幾個(gè)參數(shù)需要配置:
◆contentType設(shè)成 application/x-msdownload 就可以。這樣瀏覽器會(huì)保證彈出一個(gè)下載文件的對(duì)話框。
◆inputName 這個(gè)比較重要,這個(gè)名字是輸入流的名稱, 以后要steam result的實(shí)現(xiàn)類中為根據(jù)OGNL的表達(dá)式去查找的。
◆contentDisposition 這個(gè)是下載之后,保存在用戶端的文件名稱。
◆${contentDisposition} 看一下代碼。如果寫成上述的方式,就有機(jī)會(huì)在ACTION中設(shè)置文件名。
4、另外一個(gè)參數(shù):contentLength就是下載文件的大小,webwork的stream result似乎實(shí)現(xiàn)有問題,不能根據(jù)文件的大小動(dòng)態(tài)進(jìn)行設(shè)置,只能寫死。
這個(gè)參數(shù)的意義是告訴瀏覽下載的文件有多大,以便瀏覽器正確的顯示進(jìn)度條。如果這個(gè)功能很重要的話,可以重新寫一個(gè)RESULT來實(shí)現(xiàn)。
關(guān)于如何進(jìn)行WebWork文件下載就分享到這里啦,希望上述內(nèi)容能夠讓大家有所提升。如果想要學(xué)習(xí)更多知識(shí),請(qǐng)大家多多留意小編的更新。謝謝大家關(guān)注一下億速云網(wǎng)站!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。