java struts2图片上传_struts2上传图片的全过程

1、写一个上传的jsp页面upload_p_w_picpath.jsp,内容如下:

解析:A、 form里面的method必须是post,enctype="multipart/form-data"上传文件必须这样写

B、这个是图片格式或者大小出错的错误提示---要在struts.xml里面先配置

C、name="file",批量上传name的值要一样

2、创建一个action--我的包是com.upload.one

public class UploadImageAction extends ActionSupport{

private List file;

private List fileFileName;

private List fileContentType;

public String execute() throws IOException{

//得到工程保存图片的路径

String root = ServletActionContext.getRequest().getRealPath("/upload");

//循环上传的文件

for(int i = 0 ; i < file.size() ; i ++){

InputStream is = new FileInputStream(file.get(i));

//得到图片保存的位置(根据root来得到图片保存的路径在tomcat下的该工程里)

File destFile = new File(root,this.getFileFileName().get(i));

//把图片写入到上面设置的路径里

OutputStream os = new FileOutputStream(destFile);

byte[] buffer = new byte[400];

int length  = 0 ;

while((length = is.read(buffer))>0){

os.write(buffer, 0, length);

}

is.close();

os.close();

}

return SUCCESS;

}

}

解析:在这个action里面做了几个测试

要在WebRoot下面新建一个文件夹--upload

A、一个一个的打印,明白每个变量到底是干嘛的,到底得到些什么值

B、我图片存放的路径改到了自己想要的路径下面,结果在页面显示的时候,决绝路径无法显示

可能在显示的时候哪里写错了

C、刚开始以后要把得到的图片的名称一个一个得手动添加到fileFileName,结果用

fileFileName.add(图片名称)后,fileFileName的length比添加之前多了一倍

于是明白,在命名的时候要遵循一个规律,这个样的话fileFileName自动的把图片名称

一个一个的添加到里面,不用自己添加

3、配置struts.xml文件

p_w_picpath/bmp,p_w_picpath/png,p_w_picpath/gif,p_w_picpath/jpeg,p_w_picpath/jpg

102400

/showImage.jsp

/upload_p_w_picpath.jsp

解析:

A、因为在这里我限制了图片的格式和大小,如果不配置国际化资源文件,那么在页面引入

的时候,显示出的内容不友好,于是自己定义出错显示的内容

B、在action配置里面,限制了单张图片的大小102400

如果不再package外面()限制总的上传大小

那么,当你上传的单个图片超过限定的大小,没事反应,但是后台会报错

C、临时存放文件的路径

如果不要这个路径,就会在控制台打印Unable to find 'struts.multipart.saveDir' property setting. Defaulting to        javax.servlet.context.tempdir

4、messageResource_zh_CN.properties配置文件的内容

#上传文件类型不允许的提示信息

struts.messages.error.content.type.not.allowed=\u4E0A\u4F20\u7C7B\u578B\u9519\u8BEF

#上传文件太大的提示信息

struts.messages.error.file.too.large=\u4E0A\u4F20\u6587\u4EF6\u592A\u5927

解析:当图片的格式不对,上传大小不对时,就会在页面显示相应的错误信息

5、把上传的图片显示出来

              >

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值