`

struts2上传文件的文件名

阅读更多
struts2中经常用图片上传,在action中如何获得上传图片的名称及其类型呢。

第一步:表单填写。

这里用struts标签。<%@taglib prefix="s" uri="/struts-tags" %>
<form id="pho"  method="post"  enctype="multipart/form-data">

请选择照片: <s:file id="imgFile" required="ture" name="imgFile"></s:file>
<input id="butImg" type="button" value="提交"/>
</form>

第二步:action属性。
在action中写上传图片属性(省略set、get方法)
private File imgFile;
//文件名称
private String imgFileFileName;
//文件类型
private String imgFileContentType;

注意红色部分要一致,这样才能拿到上传文件的名称和类型。

图片上传的方法,详细:

//返回保存成功后图片的名称
private String saveImg()throws IOException {
//文件保存路径 D:\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\wkh\images
String savePath = ServletActionContext.getRequest().getRealPath("/") + "images";
//文件保存URL/wkh
//String saveURL = ServletActionContext.getRequest().getContextPath();

//获取文件
File file = this.getImgFile();
//获取文件名
String oldName = this.getImgFileFileName();

//判断文件类型
String[] types = new String[]{"gif", "jpg", "jpeg","JPG", "JPEG", "png", "bmp", "PNG", "BMP"};

//设置上传最大字节
long maxSize = 10000000;

//客户端的笔
//PrintWriter out = ServletActionContext.getResponse().getWriter();
//设置返回类型
ServletActionContext.getResponse().setContentType("text/html; charset=UTF-8");
ServletActionContext.getResponse().setCharacterEncoding("UTF-8");

//检查目录
File uploadDir = new File(savePath);
if (!uploadDir.isDirectory()) {
uploadDir.mkdir();
}

FileInputStream fileInputStream = new FileInputStream(file);
if (fileInputStream.available() > maxSize) {
return "上传图片大小超过限制。";
}

//判断上传文件的格式
String fileExt = oldName.substring(oldName.lastIndexOf(".") + 1);
         if (!Arrays.<String>asList(types).contains(fileExt)) {
return "上传图片的格式不正确。";
}

//重命名上传文件
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
String newName = sdf.format(new Date()) + new Random().nextInt(1000) + "." + fileExt;

//保存图片
try {
writerImg(fileInputStream,savePath + "\\" + newName);
} catch (Exception e) {

return "文件上传失败。";
}


return newName;
}
分享到:
评论
3 楼 满手都是炸 2013-05-18  
我也想知道
2 楼 A丨King 2013-04-01  
writerImg();
怎么实现?
1 楼 guomingzhang2008 2012-11-09  
正解,谢谢!

相关推荐

    实现struts2的文件上传文件功能

    NULL 博文链接:https://yqshfut.iteye.com/blog/619870

    struts2实现的文件上传下载,上传文件重命名(按时间戳)

    struts2实现的文件上传下载,上传文件重命名(按时间戳)

    struts2上传下载 解决中文文件名乱码

    之前,为中文文件名出现乱码在google上搜索是大量资源,说的很好,但都未能通过验证。此次认真阅读,上机调试终于通过。

    Struts2上传文件出错

    // 上传文件名集合 private List&lt;String&gt; fileFileName; // 上传文件内容类型集合 private List&lt;String&gt; fileContentType; public List&lt;File&gt; getFile&#40;&#41; { return file; } public void setFile&#...

    Struts2属性文件详解

    该属性指定Struts 2框架默认加载的配置文件,如果需要指定默认加载多个配置文件,则多个配置文件的文件名之间以英文逗号(,)隔开.该属性的默认值为struts- default.xml,struts-plugin.xml,struts.xml,看到该属性值,所以...

    struts1的文件上传

    文件上传、多文件上传,文件名 乱码,上传文件名的重名都在此工程中有具体的解决 此工程中为了上传容易,删除了jar包,要使的工程运行,只要加入struts-1.2.9的jar包就可以了

    02_张孝祥09年Struts视频_文件上传单元

    04.用struts获取上传文件名和解决中文乱码 05.保存用struts获取的上传文件内容 06.分析文件上传时的一个安全问题 07.分析高质量项目该如何处理文件上传 08.处理不上传文件时的情况 09.在配置文件中配置上传文件的...

    11_张孝祥09年Struts视频_文件上传单元

    04.用struts获取上传文件名和解决中文乱码 05.保存用struts获取的上传文件内容 06.分析文件上传时的一个安全问题 07.分析高质量项目该如何处理文件上传 08.处理不上传文件时的情况 09.在配置文件中配置上传文件的...

    struts2文件上传(解决中文乱码)

    struts2实现文件上传。解决中文url和中文文件名乱码问题

    ajax_struts2_上传与下载_无刷新

    4. 批量导入数据采用的是导入test文件夹下的测试压缩包upload.rar上传到服务器的临时目录,然后利用WinRar.exe对其进行解压,解压后对指定文件名的Excel文件进行解析,然后对每条记录所配置的文件路径进行比对然后...

    Struts2多文件上传下载源码

    Struts2 文件 多文件上传下载 示例 ,如何获取真实的上传文件名的规则,部署后就可用,工程中包含所有jar包

    struts2 文件上传与下载

    基于struts2 的文件上传与下载源码,解决中文文件名。

    struts-上传文件

    //封装文件标题请求参数的属性 private String title; //封装上传文件域的属性 private File upload; //封装上传文件类型的属性 private String uploadContentType;... //直接在struts.xml文件中配置的属性

    struts2 上传多个文件 .doc

    在Struts2中,用于获得和设置java.io.File对象(Struts2将文件上传到临时路径,并使用java.io.File打开这个临时文件)的方法是getUpload和setUpload。获得和设置文件名的方法是getUploadFileName和setUploadFileName...

    struts2文件上传,与struts2-xml校验

    struts2文件上传,与xml校验 struts2文件校验可通过xml配对action的名称去校验属性的值。例如UploadAction.java中有一个book的属性。那么我可以定义一个UploadAction-validation.xml去校验这个book属性的内容。 xml的...

    android向struts服务器端上传文件代码

    本人也是新手,这个代码是参考的网上代码自己修改写的,能实现android客户端向struts上传文件功能,用的是HttpURLConnection,注意设置请求头的编码为“utf-8",能解决文件名是中文的问题,不然会报错,rg.apache....

    struts smatrupload做的文件上传

    用MyEclipse 5.5.1、struts和smartuplond做的一个文件上传事例,可将客户端的文件上传至服务器的一指定文件夹中,文件名通过时间命名唯一,例子很小,但是上传大文件可能会报错,大家一起研究研究。

    基于Struts2+Hibernate+Spring框架的超市信息管理系统

    项目作品名称: 基于Struts2+Hibernate+Spring框架的超市信息管理系统 使用JQuery datatable插件浏览从数据库查询的信息记录(不少于30条记录)。 使用JQuery dropzone插件把客户端图片上传至服务器,并把该图片...

    研究论文-Struts2架构中的Commons-fileupload组件应用技术.pdf

    基于HTTP传输协议的Web网页中,采用嵌入Commonsfileupload组件的Struts2框架,实现了文件的上传与下载.利用OGNL表达式提取Session持久层中的文件名,并利用此文件名实现下载文件的动态更名.灵活利用struts2.0自身...

    struts 文件的上传下载 简要实现 下载过程传递中文实现

    这是个Strtus对上传下载功能的简要实现 参考了Strtus2GA包附带源码关于上传下载的程序 在Strtus.xml中配置路径和文件名,页面直接获取 下载过程对中文的处理方式

Global site tag (gtag.js) - Google Analytics