jsp上傳文件夾下,jsp上傳文件如何實現

本文目錄一覽:

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-tw/n/258573.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-15 12:50
下一篇 2024-12-15 12:50

相關推薦

  • Idea新建文件夾沒有java class的解決方法

    如果你在Idea中新建了一個文件夾,卻沒有Java Class,應該如何解決呢?下面從多個方面來進行解答。 一、檢查Idea設置 首先,我們應該檢查Idea的設置是否正確。打開Id…

    編程 2025-04-29
  • 如何實現圖像粘貼到蒙版

    本文將從多個方面介紹圖像粘貼到蒙版的實現方法。 一、創建蒙版 首先,在HTML中創建一個蒙版元素,用於接收要粘貼的圖片。 <div id=”mask” style=”widt…

    編程 2025-04-29
  • Django ORM如何實現或的條件查詢

    在我們使用Django進行資料庫操作的時候,查詢條件往往不止一個,一個好的查詢語句需要考慮我們的查詢要求以及業務場景。在實際工作中,我們經常需要使用或的條件進行查詢,本文將詳細介紹…

    編程 2025-04-29
  • 百度網盤Python上傳

    百度網盤是一個常用的雲存儲平台,提供了多種上傳文件的方式,其中包括使用Python進行上傳。本文將從安裝Python、安裝依賴庫、上傳文件三個方面進行詳細闡述。 一、安裝Pytho…

    編程 2025-04-28
  • Python一次性輸入10個數如何實現?

    Python提供了多種方法進行輸入,可以手動逐個輸入,也可以一次性輸入多個數。在需要輸入大量數據時,一次性輸入十個數就非常方便。下面我們從多個方面來講解如何一次性輸入10個數。 一…

    編程 2025-04-28
  • 如何使用git拉出某個用戶上傳的文件?

    Git是一個非常流行的版本控制系統,它可以幫助團隊協作,並保證代碼的版本控制。有時候,我們需要拉出某個用戶上傳的文件,但不知道從哪裡開始。本文將會從多個方面詳細闡述如何使用git拉…

    編程 2025-04-28
  • 上傳多媒體文件的常用方法——uploadmediabyurl

    uploadmediabyurl是一個非常常用的方法,它允許我們將本地的多媒體文件上傳到微信伺服器上。 一、uploadmediabyurl的基本使用方法 要使用uploadmed…

    編程 2025-04-27
  • 如何實現van-picker點擊遮罩不關閉

    van-picker是一個非常實用的Vue組件,但默認情況下,點擊遮罩會自動關閉選擇器。本文將介紹如何通過代碼實現van-picker點擊遮罩不關閉的功能。 一、通過覆蓋遮罩實現 …

    編程 2025-04-27
  • 如何實現矩陣相乘等於E

    本文將介紹如何通過代碼實現兩個矩陣相乘等於單位矩陣E。 一、線性代數基礎 要理解矩陣相乘等於E,需要先了解一些線性代數基礎知識。 首先,矩陣的乘法是滿足結合律的,即(A*B)*C=…

    編程 2025-04-27
  • NB設備上傳數據方案

    NB(Narrow Band)是一種物聯網通信技術,可以實現低功耗、寬覆蓋、多連接等特點。本文旨在探討如何使用NB設備上傳數據。在這篇文章中,我們將介紹NB設備上傳數據的基本原理、…

    編程 2025-04-27

發表回復

登錄後才能評論