導航:首頁 > 編程語言 > java實訓項目下載

java實訓項目下載

發布時間:2023-11-12 01:41:09

1. linux伺服器上部署java項目,本地windos通過瀏覽器訪問項目怎麼下載項目目錄下的文件到本

既然使用了java,實現這種功能就與OS無關了,否則叫什麼跨平台。其實用瀏覽器下載伺服器端文件比較容易:
首先,要讓用戶能找到並選擇文件(jsp里實現,部分代碼
String realPath=request.getSession().getServletContext().getRealPath("")+"/documents";//項目根目錄下文件路徑
File fileDir=new File(realPath);
String[] fileList=fileDir.list();//返回目錄下文件名稱數組
for(int i=0;i<fileList.length;i++){
//這里遍歷出來要顯示的文件名,加到td里,後面再加上個「下載」按鈕
//使用隱藏input記錄文件名和路徑fileName,filePath

其次,提交下載請求並下載
使用form提交用戶選擇的文件名,Action中部分代碼:
String fileName=req.getParameter("fileName");//HttpServletRequest req
String filePath=req.getParameter("filePath");
try {
FileDownload.Download(filePath+"/"+fileName, "attachment", res);
} catch (Exception e) {
e.printStackTrace();
}
下面是 FileDownload類:
package com.aerolink.aocs.util.fileUtil;

import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;

/**
* <p>
* Title: FileDownload類
* </p>
* <p>
* Description: 實現文件下載功能
* </p>
* <p>
* 將文件名,HttpServletRequest,HttpServletRespons傳給靜態方法Download即可
* </p>
* <p>
* Copyright: Copyright (c) 2005
* </p>
* <p>
* Company: 北京天航信達信息技術有限公司
* </p>
*
* @author 陶源
* @version 2.0
*/
public class FileDownload {

/**
* @param fileName
* @param res
* @throws FileNotFoundException
* @throws IOException
*/
public static void Download(String fileName,
HttpServletResponse res)
throws FileNotFoundException, IOException {

String fileContentType = "application/octet-stream";
String fileDownloadType = "attachment";

long totalsize = 0;
// 取得要傳輸的文件,實際應用是可以將文件路徑以參數的形式傳入
File f = new File(fileName);
// 取文件長度
long filelength = f.length();
byte[] b = new byte[1024];

// 設置文件輸出流
FileInputStream fin = new FileInputStream(f);
DataInputStream in = new DataInputStream(fin);

int pos = fileName.lastIndexOf(java.io.File.separator);
String fn = new String(fileName.substring(pos + 1).getBytes("gb2312"),
"ISO8859-1");

// 設置相應頭信息,讓下載的文件顯示保存信息
res.setContentType(fileContentType);
res.setHeader("Content-Disposition", fileDownloadType + ";filename=\""
+ fn + "\"");
// 確定長度
String filesize = Long.toString(filelength);
// 設置輸出文件的長度
res.setHeader("Content-Length", filesize);
// 取得輸出流
ServletOutputStream servletOut = res.getOutputStream();
// 發送文件數據,每次1024位元組,最後一次單獨計算
while (totalsize < filelength) {
totalsize += 1024;
if (totalsize > filelength) {
// 最後一次傳送的位元組數
byte[] leftpart = new byte[1024 - (int) (totalsize - filelength)];
// 讀入位元組數組
in.readFully(leftpart);
// 寫入輸出流
servletOut.write(leftpart);
} else {
// 讀入1024個位元組到位元組數組 b
in.readFully(b);
// 寫和輸出流
servletOut.write(b);
}
}
servletOut.close();
}

/**
* @param fileName
* @param fileDownloadType
* @param res
* @throws FileNotFoundException
* @throws IOException
*/
public static void Download(String fileName, String fileDownloadType,
HttpServletResponse res)
throws FileNotFoundException, IOException {

String fileContentType = null;

if (fileName.endsWith(".doc")) {
fileContentType = "application/msword";
} else if (fileName.endsWith(".pdf")) {
fileContentType = "application/pdf";
} else if (fileName.endsWith(".xls")) {
fileContentType = "application/vnd-ms-excel";
} else if (fileName.endsWith(".txt")) {
fileContentType = "text/plain";
} else {
fileContentType = "application/octet-stream";
}

long totalsize = 0;
// 取得要傳輸的文件,實際應用是可以將文件路徑以參數的形式傳入
File f = new File(fileName);
// 取文件長度
long filelength = f.length();
byte[] b = new byte[1024];

// 設置文件輸出流
FileInputStream fin = new FileInputStream(f);
DataInputStream in = new DataInputStream(fin);

int pos = fileName.lastIndexOf(java.io.File.separator);
String fn = new String(fileName.substring(pos + 1).getBytes("gb2312"),
"ISO8859-1");

// 設置相應頭信息,讓下載的文件顯示保存信息
res.setContentType(fileContentType);
res.setHeader("Content-Disposition", fileDownloadType + ";filename=\""
+ fn + "\"");
// 確定長度
String filesize = Long.toString(filelength);
// 設置輸出文件的長度
res.setHeader("Content-Length", filesize);
// 取得輸出流
ServletOutputStream servletOut = res.getOutputStream();
// 發送文件數據,每次1024位元組,最後一次單獨計算
while (totalsize < filelength) {
totalsize += 1024;
if (totalsize > filelength) {
// 最後一次傳送的位元組數
byte[] leftpart = new byte[1024 - (int) (totalsize - filelength)];
// 讀入位元組數組
in.readFully(leftpart);
// 寫入輸出流
servletOut.write(leftpart);
} else {
// 讀入1024個位元組到位元組數組 b
in.readFully(b);
// 寫和輸出流
servletOut.write(b);
}
}
servletOut.close();
}
}

2. 各位大佬們,求《30天學通JAVA項目案例開發》pdf版

《30天學通JavaWeb項目案例開發》PDF下載 下載地址:密碼:id7x 圖書簡介: Java是目前最流行、發展最快的編程語言之一,由於其開放,跨平台的特點,吸引了眾多的開發人員與軟體公司。同時在眾多軟體公司及有志之士的共同努力下,出現了許多優秀的開源框架,為Java語言在企業級開發領域注入了新的血液。 本書結合具體的項目案例向讀者介紹了JavaEE開發的整個流程,本書共介紹了10個項目案例,涵蓋了目前幾個比較流行的開源框架,如Struts、Spring、Hibernate、JSF,同時還有用於分布式企業級開發的EJB技術,在項目的開發過程中,筆者還多次使用到了Ajax技術,以增強用戶體驗。在每一個項目案例的介紹中,筆者都是按照實際的開發步驟進行的,一個模塊一個模塊地進行介紹。對每一個項目的代碼都進行了詳細的介紹,對核心代碼還進行了詳細的代碼注釋,盡量讓讀者讀懂代碼中的每一行,每一個細節。 本書不僅僅是向讀者介紹幾個案例,更是為了讓讀者熟悉這些開源框架的使用,其中也包含了筆者很多的開發技巧與開發經驗,因此對於JavaEE初學者及具有一定開發基礎的編程人員,都是一本不錯的參考書。

閱讀全文

與java實訓項目下載相關的資料

熱點內容
文件領導簽字在哪裡 瀏覽:239
電腦保存文件是點哪裡 瀏覽:689
word07圖片框 瀏覽:359
跨境付app現在支持哪些國家 瀏覽:647
手機mid文件 瀏覽:929
華碩筆記本升級bios找不到文件 瀏覽:399
編程和電腦哪個更適合孩子 瀏覽:718
xls壓縮文件怎麼設置 瀏覽:423
微信眨眼小女孩 瀏覽:207
cad2010安裝文件 瀏覽:379
編程上什麼學 瀏覽:364
美版s7升級70移動4g 瀏覽:112
金融數據包含哪些 瀏覽:240
尼爾應用程序錯誤 瀏覽:157
淘特app如何助力 瀏覽:472
cad文件有木馬 瀏覽:459
多頁文件怎樣改變字體 瀏覽:145
16燈搖搖棒的程序 瀏覽:705
作業成本相關數據哪裡找 瀏覽:826
買鞋有什麼推薦的app 瀏覽:239

友情鏈接