基于Struts文件上傳(FormFile)詳解
Struts中FormFile用于文件進(jìn)行上傳
1.在jsp文件中進(jìn)行定義
<form action="/StrutsFileUpAndDown/register.do" method="post" enctype="multipart/form-data"> 名字:<input type="text" name="name" /> 頭像:<input type="file" name="file"/> <input type="submit" value="注冊(cè)用戶(hù)"> </form>
2.在Form表單中定義FormFile
/* * Generated by MyEclipse Struts * Template path: templates/java/JavaClass.vtl */ package com.yourcompany.struts.form; import javax.servlet.http.HttpServletRequest; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionMapping; import org.apache.struts.upload.FormFile; /** * MyEclipse Struts * Creation date: 08-24-2017 * * XDoclet definition: * @struts.form name="userForm" */ public class UserForm extends ActionForm { /* * Generated Methods */ private String username; private FormFile file; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public FormFile getFile() { return file; } public void setFile(FormFile file) { this.file = file; } }
3.利用struts文件進(jìn)行關(guān)聯(lián)Form,關(guān)聯(lián)以后
1)利用表單實(shí)例進(jìn)行獲取FormFile實(shí)例,在獲取以后,我們可以通過(guò)FormFile獲取上傳文件的各種信息
UserForm userForm = (UserForm) form; String username = userForm.getUsername(); FormFile file = userForm.getFile(); //通過(guò)formFile可以獲取關(guān)于用戶(hù)上傳文件的各種信息 //用于獲取文件名字 String fileName = file.getFileName(); //用于獲取文件大小 int fileSize = file.getFileSize();
2)通過(guò)FormFile實(shí)例獲取輸入流,創(chuàng)建一個(gè)輸出流,并且在代碼中獲取tomcat服務(wù)器的絕對(duì)路徑
try { //獲取輸入流 is = file.getInputStream(); //得到輸出流 //1.得到file文件夾,上傳到tomcat服務(wù)器后的絕對(duì)路徑(file文件為新創(chuàng)建的文件夾) String filePath = this.getServlet().getServletContext().getRealPath("/file"); //兩個(gè)"http://"的其中一個(gè)"/"為轉(zhuǎn)義符 os=new FileOutputStream(filePath+"\\"+fileName); int len=0;//表示讀取的字節(jié) //做一個(gè)緩存,防止文件過(guò)大而造成錯(cuò)誤 byte[] buff=new byte[1024]; while((len=is.read(buff))!=-1) { os.write(buff,0,len); } is.close(); os.close(); }
以上這篇基于Struts文件上傳(FormFile)詳解就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
java編寫(xiě)簡(jiǎn)單的ATM存取系統(tǒng)
這篇文章主要介紹了java編寫(xiě)簡(jiǎn)單的ATM存取系統(tǒng),附上思路和具體實(shí)現(xiàn)代碼,適合新人練手用,推薦給小伙伴們。2015-02-02Mybatis-Plus多表關(guān)聯(lián)查詢(xún)的使用案例解析
這篇文章主要介紹了Mybatis-Plus多表關(guān)聯(lián)查詢(xún)的使用,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-05-05分享一個(gè)簡(jiǎn)單的java爬蟲(chóng)框架
這篇文章主要介紹了分享一個(gè)簡(jiǎn)單的java爬蟲(chóng)框架,具有一定參考價(jià)值,需要的朋友可以了解下。2017-11-11java原裝代碼完成pdf在線(xiàn)預(yù)覽和pdf打印及下載
本文主要介紹了java原裝代碼完成pdf在線(xiàn)預(yù)覽和pdf打印及下載的方法,具有一定的參考價(jià)值,下面跟著小編一起來(lái)看下吧2017-02-02spring boot整合redis主從sentinel方式
這篇文章主要介紹了spring boot整合redis主從sentinel方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03IntelliJ IDEA基于Scala實(shí)現(xiàn)Git檢查工具
這篇文章主要介紹了如何使用Scala實(shí)現(xiàn)自定義的Git檢查工具,大家可以基于本文的示例進(jìn)行擴(kuò)展與實(shí)現(xiàn),也可以進(jìn)行其他應(yīng)用方向的嘗試,感興趣的可以了解下2023-08-08