struts2圖片上傳顯示
Ⅰ struts2+Hibernate上傳圖片,如何實現圖片可以放在伺服器上;資料庫保存圖片路徑。
樓主struts2上傳代碼會寫嗎?
struts2本身提供了上傳攔截器,用struts2實現上傳功能,並獲得保存地址
<!-- 配置fileUpload的攔截器 -->
<interceptor-ref name="fileUpload">
獲得文件存儲地址(上傳時指定)+文件名
調用保存方法(Hibernate),將文件路徑存入資料庫
在一個事務中完成即可!
如:有哪塊有難點,及時追問。good luck!
Ⅱ struts2上傳圖片怎麼保存到資料庫中
1、在實際開發中,圖片一般是上傳到圖片伺服器上,而資料庫保存路徑。struts2使用upload攔截器可以直接取到圖片路徑,處理後保存到資料庫就行了。
2、對於一些需要保存到資料庫的圖片,可以使用大文本欄位(clob或blob)。方法一般都是使用位元組流將圖片寫入資料庫。
Ⅲ struts2中限制上傳文件大小後錯誤信息的顯示
Struts2本身提供了一個文件上傳的攔截器,通過配置該攔截器可以更輕松地實現文件過濾。我們只需要在Action中配置該攔截器就可以了。當文件過濾失敗後,會自動轉向input邏輯視圖,因此必須為該Action配置名為input的邏輯視圖,除此之外還必須為配置defaultStack的攔截器的引用。配置文件如下:
<action name="upload" class="com.annlee.upload.UploadAction" >
<!-- 配置fileUpload的攔截器 -->
<interceptor-ref name="fileUpload">
<!-- 配置允許上傳的文件類型 -->
<param name="allowedTypes">image/bmp,image/gif,image/jpg</param>
<!-- 配置允許上傳的文件大小 -->
<param name="maximumSize">2000000</param>
</interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
<param name="savePath">/</param>
<result>/common/succ.jsp</result>
<result name="input">/cos_fileupload/fileupload.jsp</result>
</action>
如果上傳失敗系統會返回到原來的頁面,要在原來的頁面上加上以下錯誤提示代碼:
<s:fielderror />這樣系統就會返回提示給用戶,但是這時的提示是Struts2自帶的提示,非常不友好,我們可以國際化資源里配置以下兩項,我們的提示就會自動替換Struts2的提示,提示的關鍵字如下
struts.messages.error.file.too.large
struts.messages.error.content.type.not.allowed
此外,如果用戶上傳失敗的原因不是因為以上兩種還有另外的一個信息提示用戶,它的關健字是:struts.messages.error.uploading,我們也應該替換這個提示信息。
其它說明:如果沒有指定臨時的保存文件夾,系統就會使用javax.servlet.context.tempdir路徑,這個路徑是Tomcat的work\Catalina\localhost\,我們應該設置自己的路徑,這個配置的屬性為struts.multipart.saveDir可以在struts.properties中配置,還有一個文件上傳的屬性:struts.multipart.maxSize設置整個表單請求內容的最大位元組數。
Ⅳ 在Struts2中如何上傳圖片並將剛剛上傳的圖片立即顯示出來
//action的關鍵代碼
import com.xt.gyz.facelook.service.FacesService;
public class ShowPic extends ActionSupport {
private InputStream is;
private Integer id;
private FacesService facesService;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public void setFacesService(FacesService facesService) {
this.facesService = facesService;
}
public InputStream getIs() {
return is;
}
public void setIs(InputStream is) {
this.is = is;
}
@Override
public String execute() throws Exception {
Faces face=facesService.findById(id);
is=new ByteArrayInputStream(face.getPic());
// FileOutputStream fos=new FileOutputStream(new File("E:/body.jpg"));
//頃返 System.out.println(fos);
// System.out.println("face:"+face.getPic().length);
//圓乎消 fos.write(face.getPic());
// fos.flush();
// fos.close();
return super.execute();
}
}
//不要忘記struts.xml配置
......
<action name="showPic" class="showPicAction">
<result type="stream">
<param name="inputName">is</param>
<param name="contectType">image/jpg</橘知param>
</result>
</action>
.....
這樣就可以啦
Ⅳ 使用struts2如何實現文件上傳
新建Web Project,在WebRoot下新建upload文件夾
在WebRoot下新建upload.jsp,上傳界面
編寫上傳成功、失敗的提示界面。
在WebRoot下新建uploadError.jsp
在WebRoot下新建uploadSuccess.jsp
編寫Action類
配置struts.xml文件,重置fileUpload攔截器。
測試,測試完成之後在tomcat下面webapps目錄下找到項目對應的文件夾下的upload下查看