Re: [JSP ] 如何將用jsp呼叫ireport產生出來的pdf쀠…

看板java作者 (澄楓)時間14年前 (2009/12/07 12:54), 編輯推噓5(501)
留言6則, 4人參與, 最新討論串1/1
先在此向各位大大道歉 我真的是個不太會敘述問題的人 所以才讓各位白忙 其實我也是剛剛才想到server端跟client的不同 那我再次敘述一下我的問題 就是老闆希望達到的目的是能夠將利用ireport產生出來的報表儲存在server端 就是我有一支a.jsp的程式 是讓user輸入搜尋報表的條件 然後把條件丟到b.jsp b.jsp這支程式再去呼叫ireport把報表的pdf檔跑出來 而跑出來之後就直接儲存在server端的某個資料夾裡 以下是我b.jsp這支程式的程式碼 <% String bank_code1=request.getParameter("bank_code"); %> <% //報表編輯之後產生的.jasper文件的存放位置 File reportFile = new File(application.getRealPath("/report/iReport-3.0.0-src/report2.jasper")); //連接SQL SERVER的JDBC URL String url ="jdbc:jtds:sqlserver://xxx.xxx.xxx.xxx/test"; Class.forName("net.sourceforge.jtds.jdbc.Driver").newInstance(); //傳遞報表中用到的參數值 Map parameters = new HashMap(); //"bank_code"是ireport定義的參數名稱 其類型為String parameters.put("bank_code", bank_code1); System.out.println("---------conn-------------"); //連接到資料庫 Connection conn = DriverManager.getConnection(url,"sa", "1234567"); System.out.println("---------Jasper begin-------------"); //在控制台顯示報表文件的路徑 byte[] bytes=JasperRunManager.runReportToPdf(reportFile.getPath(),parameters,conn); System.out.println("---------Jasper end-------------"); response.setContentType("application/pdf"); response.setHeader("Content-Disposition","attachment;filename=\"test.pdf\""); response.setContentLength(bytes.length); ServletOutputStream ouputStream = response.getOutputStream(); ouputStream.write(bytes, 0, bytes.length); ouputStream.flush(); ouputStream.close(); %> 其實就是在google找到範例之後再去改一些關鍵字而已 (之前沒po程式碼是因為在家裡沒有檔案) 那我早上加了一行 response.setHeader("Content-Disposition","attachment;filename=\"test.pdf\""); 現在是可以下載 但是是在client端 我的問題是我不知道該如何把這個產生出來的pdf檔儲存在server端 這段程式碼我不知道該怎麼寫 希望板上的大大們能再給我一點提示 謝謝 ※ 引述《orangetrees (澄楓)》之銘言: : 如題 : 其實我對JSP語法真的很不熟 : 用ireport的方法也是爬遍了GOOGLE大神之後才弄出來的 : 但是老闆現在需要的東西是 : 要把利用ireport產生出來的報表另存在別的資料夾裡 : 我目前的寫法是 : 第一頁就只是讓user輸入一個值 : 第二頁就是得到那個值之後 丟到ireport去搜尋出需要的資料 : 然後show出pdf檔 : 但是現在只能show出 並沒有辦法在show出的同時就存在別的地方 : (其實我很希望可以直接按adobe上面的儲存就好了......不過 當然不行 = =) : 我大概知道要把這個pdf檔另存的這段程式應該要寫在第二頁裡面 : 但是該怎麼寫實在是毫無頭緒 : 老闆說要我去找找outputstream這方面的資料 : 只是我對這東西實在是沒概念 : 不知道板上的各位大大能否提供小妹一個想法 或是方向之類的 : 至少在google搜尋的時候有關鍵字可以找.... : 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.20.144.31

12/07 13:17, , 1F
//報表編輯之後產生的.jasper文件的存放位置 →?
12/07 13:17, 1F

12/07 13:18, , 2F
對你產出的程式(即使是抄來的)每一行都要負責阿....
12/07 13:18, 2F

12/07 13:26, , 3F
那個是ireport會自動產出的檔
12/07 13:26, 3F

12/07 16:22, , 4F
如果我這樣提示還不夠明顯的話,我建議你找家教 or 發包
12/07 16:22, 4F
※ 編輯: orangetrees 來自: 61.20.144.31 (12/07 16:48)

12/07 19:48, , 5F
請去搜尋File 存檔跟byte[]操作就有答案了
12/07 19:48, 5F

12/10 23:40, , 6F
我一直以為學程式語言都是先從std IO 跟File IO開始的...
12/10 23:40, 6F
文章代碼(AID): #1B78g4xW (java)