本文目錄一覽:
- 1、jsp 文件上傳和下載
- 2、jsp上傳一個文件夾下的所有文件
- 3、jsp 如何實現文件上傳和下載功能?
- 4、Jsp上傳圖片到指定文件夾下 求詳細代碼
- 5、jsp程序怎樣批量上傳同一文件夾下多個excel文件
jsp 文件上傳和下載
1.jsp頁面
s:form action=”fileAction” namespace=”/file” method=”POST” enctype=”multipart/form-data”
!– name為後台對應的參數名稱 —
s:file name=”files” label=”file1″/s:file
s:file name=”files” label=”file2″/s:file
s:file name=”files” label=”file3″/s:file
s:submit value=”提交” id=”submitBut”/s:submit
/s:form
2.Action
//單個文件上傳可以用 File files,String filesFileName,String filesContentType
//名稱要與jsp中的name相同(三個變量都要生成get,set)
private File[] files;
// 要以File[]變量名開頭
private String[] filesFileName;
// 要以File[]變量名開頭
private String[] filesContentType;
private ServletContext servletContext;
//Action調用的上傳文件方法
public String execute() {
ServletContext servletContext = ServletActionContext.getServletContext();
String dataDir = servletContext.getRealPath(“/file/upload”);
System.out.println(dataDir);
for (int i = 0; i files.length; i++) {
File saveFile = new File(dataDir, filesFileName[i]);
files[i].renameTo(saveFile);
}
return “success”;
}
3.配置上傳文件臨時文件夾(在struts.xml中配置)
constant name=”struts.multipart.saveDir” value=”c:/temp”/
文件下載
1.下載的url(到Action)
a href=”${pageContext.request.contextPath}/file/fileAction!down.action”下載/a
2.struts.xml配置
package name=”file” namespace=”/file” extends=”struts-default”
action name=”fileAction” class=”com.struts2.file.FileAction”
!– 下載文件配置 —
!–type 為 stream 應用 StreamResult 處理–
result name=”down” type=”stream”
!–
不管實際類型,待下載文件 ContentType 統一指定為 application/octet-stream
默認為 text/plain
—
param name=”contentType”application/octet-stream/param
!–
默認就是 inputStream,它將會指示 StreamResult 通過 inputName 屬性值的 getter 方法,
比如這裡就是 getInputStream() 來獲取下載文件的內容,意味着你的 Action 要有這個方法
—
param name=”inputName”inputStream/param
!–
默認為 inline(在線打開),設置為 attachment 將會告訴瀏覽器下載該文件,filename 指定下載文
件保有存時的文件名,若未指定將會是以瀏覽的頁面名作為文件名,如以 download.action 作為文件名,
這裡使用的是動態文件名,${fileName}, 它將通過 Action 的 getFileName() 獲得文件名
—
param name=”contentDisposition”attachment;filename=”${fileName}”/param
!– 輸出時緩衝區的大小 —
param name=”bufferSize”4096/param
/result
/action
/package
3.Action
//Action調用的下載文件方法
public String down() {
return “down”;
}
//獲得下載文件的內容,可以直接讀入一個物理文件或從數據庫中獲取內容
public InputStream getInputStream() throws Exception {
String dir = servletContext.getRealPath(“/file/upload”);
File file = new File(dir, “icon.png”);
if (file.exists()) {
//下載文件
return new FileInputStream(file);
//和 Servlet 中不一樣,這裡我們不需對輸出的中文轉碼為 ISO8859-1
//將內容(Struts2 文件下載測試)直接寫入文件,下載的文件名必須是文本(txt)類型
//return new ByteArrayInputStream(“Struts2 文件下載測試”.getBytes());
}
return null;
}
// 對於配置中的 ${fileName}, 獲得下載保存時的文件名
public String getFileName() {
String fileName =”圖標.png”;
try {
// 中文文件名也是需要轉碼為 ISO8859-1,否則亂碼
return new String(fileName.getBytes(), “ISO8859-1”);
} catch (UnsupportedEncodingException e) {
return “icon.png”;
}
}
jsp上傳一個文件夾下的所有文件
東西已經發到你郵箱,注意查收,不過這個事多文件上傳,需要你選中文件才可以上傳,不能直接選中文件夾上傳,不過可以實現你所要求的功能!
jsp 如何實現文件上傳和下載功能?
上傳:
MyjspForm mf = (MyjspForm) form;// TODO Auto-generated method stub
FormFile fname=mf.getFname();
byte [] fn = fname.getFileData();
OutputStream out = new FileOutputStream(“D:\\”+fname.getFileName());
Date date = new Date();
String title = fname.getFileName();
String url = “d:\\”+fname.getFileName();
Upload ul = new Upload();
ul.setDate(date);
ul.setTitle(title);
ul.setUrl(url);
UploadDAO uld = new UploadDAO();
uld.save(ul);
out.write(fn);
out.close();
下載:
DownloadForm downloadForm = (DownloadForm)form;
String fname = request.getParameter(“furl”);
FileInputStream fi = new FileInputStream(fname);
byte[] bt = new byte[fi.available()];
fi.read(bt);
//設置文件是下載還是打開以及打開的方式msdownload表示下載;設置字湖集,//主要是解決文件中的中文信息
response.setContentType(“application/msdownload;charset=gbk”);
//文件下載後的默認保存名及打開方式
String contentDisposition = “attachment; filename=” + “java.txt”;
response.setHeader(“Content-Disposition”,contentDisposition);
//設置下載長度
response.setContentLength(bt.length);
ServletOutputStream sos = response.getOutputStream();
sos.write(bt);
return null;
Jsp上傳圖片到指定文件夾下 求詳細代碼
String time = new SimpleDateFormat(“yyyyMMddHHmmss”)
.format(Calendar.getInstance().getTime());// 得到系統時間
// 上傳技術
SmartUpload up = new SmartUpload();
// 進行初始化
up.initialize(this.getServletConfig(), request, response);
// 開始上傳
try {
up.upload(“utf-8”);//設置編碼方式。
int id = Integer.parseInt(up.getRequest().getParameter(“id”));// 商品編號
SmartFiles sf = up.getFiles();// 得到上傳的所有圖片
SmartFile file = sf.getFile(0);// 根據索引得到上傳圖片 多個圖片可以用循環:
String type = file.getFileExt();// 得到圖片後綴名
String folder = “tp/”;// 指定文件夾
String path = folder + time + “.” + type;// 路徑
System.out.println(path + “路徑”);
file.saveAs(request.getRealPath(“/”) + path);// 保存圖片
} catch (Exception e) {
e.printStackTrace();
}
//你搞個郵箱我把SmartUploadjar包 發給你吧。 //設置from提交
/*form action=”SellerServet” method=”post”
enctype=”multipart/form-data”*/ // 加上 enctype=”multipart/form-data
jsp程序怎樣批量上傳同一文件夾下多個excel文件
所謂的批量 有2個方法
1 畫面用多個input file框 遍歷後上傳
2 如果是用框架 就簡單不少比如struts利用form
網上用ajax的例子很多
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/258573.html