package action; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.util.regex.Matcher; import java.util.regex.Pattern; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionSupport; public class UploadAction extends ActionSupport { private File[] upload; //上传的文件内容 private String[] uploadContentType; //上传的文件类型 private String[] uploadFileName; //上传的文件名称 private String savePath; //上传后的文件地址 /** * 注意:上传文件类型和上传文件名称,这两个属性的定义名,是根据文件内容这个属性的名称来定义的 * 比如:上传的文件内容--》 xxx * 上传的文件类型--》 xxxContentType * 上传的文件名称--》 xxxFileName */ public void addActionError(String anErrorMessage) { // 如果错误信息是此类英文开头 if (anErrorMessage.startsWith("Request exceeded allowed size limit!")) { // 则使用正则表达式取出正在上传的文件大小值以及允许的值 Matcher matcher = Pattern.compile("\\d+,\\d+,\\d+").matcher(anErrorMessage); String currentSize = ""; String maxSize = ""; if (matcher.find()) { maxSize = matcher.group(); } if (matcher.find()) { currentSize = matcher.group(); } super.addActionError("你上传的文件(" + currentSize + ")超过允许的大小(" + maxSize + ")"); } else { // 否则继续添加其他错误 super.addActionError(anErrorMessage); } } public String upload() { try { for (int i = 0; i < upload.length; i++) { String url = ServletActionContext.getServletContext() .getRealPath(savePath) + File.separator + uploadFileName[i]; FileInputStream fis = new FileInputStream(upload[i]); FileOutputStream fos = new FileOutputStream(url); byte[] data = new byte[fis.available()]; fis.read(data); fos.write(data); fis.close(); fos.flush(); fos.close(); } ServletActionContext.getResponse().setContentType("text/html;charset=utf-8"); ServletActionContext.getResponse().getWriter().print("<h1>上传成功!</h1>"); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } public File[] getUpload() { return upload; } public void setUpload(File[] upload) { this.upload = upload; } public String[] getUploadContentType() { return uploadContentType; } public void setUploadContentType(String[] uploadContentType) { this.uploadContentType = uploadContentType; } public String[] getUploadFileName() { return uploadFileName; } public void setUploadFileName(String[] uploadFileName) { this.uploadFileName = uploadFileName; } public String getSavePath() { return savePath; } public void setSavePath(String savePath) { this.savePath = savePath; } }
最近下载更多
uni-code_0123 LV1
2023年11月29日
lyd19931203 LV21
2020年6月17日
lin980519 LV2
2019年6月27日
zhaker LV3
2018年11月12日
gypgyp LV10
2018年5月29日
wxsuperwx LV17
2018年2月1日
liuhongqi123 LV2
2018年1月2日
SANQIAN LV5
2017年10月23日
BestClever LV32
2017年8月2日
李云龙910110 LV1
2017年6月1日
最近浏览更多
1358849392 LV21
4月12日
uni-code_0123 LV1
2023年11月29日
地球导演思考 LV2
2023年4月22日
13561143836 LV7
2021年11月10日
gvebebd LV5
2020年6月9日
pt11100 LV9
2020年5月17日
张青峰 LV10
2020年4月14日
liuguojun920 LV6
2020年1月15日
liuwenlong LV20
2019年12月24日
一页尘埃 LV7
2019年9月18日