jspsmartupload上传附件

第一次自己写附件上传,用到了smartupload这个组件,项目中需要上传一个头像,后来又添加了身份证上传,首先先贴上单独上传的图片
package com.jeecg.Uploader;

import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.jeecgframework.core.util.ApplicationContextUtil;
import org.jeecgframework.core.util.MyBeanUtils;
import org.jeecgframework.web.system.service.SystemService;

import com.jeecg.entity.volunteera.VolunteerAEntity;
import com.jeecg.signin.RandomCode;
import com.jspsmart.upload.SmartUpload;

/**
 * @author lb 个人中心头像上传
 */
public class SmartUploadServlet extends HttpServlet {

	/**
	 * 
	 */
	private static final long serialVersionUID = 8539934755986798169L;

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		this.doPost(req, resp);
	}

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		SystemService systemService = ApplicationContextUtil.getContext().getBean(SystemService.class);
		// 设置上传文件保存路径
		String filePath = req.getSession().getServletContext().getRealPath("/_tmp/");
		String iid = RandomCode.getUUID();
		String id = req.getParameter("id");
		String zyztype = req.getParameter("zyztype");
		String shanchangxm = req.getParameter("shanchangxm");
		String freetime = req.getParameter("freetime");
		String fwly = req.getParameter("fwlingyu");
		String fwdx = req.getParameter("fwduixiang");
		String ext = "", filename = "", sql = "";
		VolunteerAEntity volunteera = new VolunteerAEntity();
		File file = new File(filePath);
		if (!file.exists()) {
			file.mkdir();
		}
		// 实例化上传组件
		SmartUpload su = new SmartUpload();
		// 初始化SmartUpload
		su.initialize(getServletConfig(), req, resp);
		// 设置上传文件对象1M
		su.setMaxFileSize(1024 * 1024);
		// 设置所有文件大小1M
		su.setTotalMaxFileSize(1024 * 1024);
		// 设置允许上传文件类型
		su.setAllowedFilesList("jpg,gif,png");
		String result = "";
		try {
			// 设置禁止上传文件类型
			su.setDeniedFilesList("rar,jsp,js");
			// 上传文件
			su.upload();
			if (su.getFiles().getCount() > 0) {
				ext = su.getFiles().getFile(0).getFileExt();// 获取文件后缀
				filename = filePath + "/" + iid + "." + ext;// 完整文件名
				// 保存文件
				su.getFiles().getFile(0).saveAs(filename);
				result = "更新成功!";
				sql = "UPDATE volunteer_a SET a0048='" + iid + "." + ext + "' WHERE id='" + id + "'";
				int a = systemService.updateBySqlString(sql);
			}
			// ext=su.getFiles().getFile(0).getFileExt();//获取文件后缀
			// filename = filePath+iid+"."+ext;//完整文件名
			// //保存文件
			// su.getFiles().getFile(0).saveAs(filename);
			// sql="UPDATE volunteer_a SET a0048='"+iid+"."+ext+"' WHERE
			// id='"+id+"'";
			// int a = systemService.updateBySqlString(sql);
			String a0002 = new String(su.getRequest().getParameter("c0002").getBytes(),"utf-8");
		
			volunteera.setId(id);
			volunteera.setA0002(a0002);
		
		} catch (Exception e) {
			result = "上传失败!";
			e.printStackTrace();
		}
//		req.setAttribute("smartResult", result);
//		req.getRequestDispatcher("/webpage/yzvolunteer/volunteergeren/wode.jsp").forward(req, resp);
	}

}
后来自己想到了su.getFiles().getFile(0).getFileExt()中的参数0,联想到如果上传多个的话,是不是这个参数可变。果然发现,如果上传多个的话,可以直接写一个循环,然后遍历取出附件中的单个文件,顺序的话目前还未发现有什么不同的地方,贴上多个上传的代码
for (int i = 0; i < smart.getFiles().getCount(); i++) {
SmartFile files = smart.getFiles().getFile(i);
//System.out.println(files.getFileName());
if (!files.isMissing()) {
SimpleDateFormat sdf = new SimpleDateFormat(
"yyyyMMddHHmmssSSS");
String name = sdf.format(new java.util.Date());
name = name + "." + files.getFileExt();// 得到文件的扩展名
String filename = this.getServletContext().getRealPath("/")
+ "images\\" + name;
smart.getFiles().getFile(0).saveAs(filename);
}

只需要把上传的地方改进就可以。

(保存自己每一天的点滴,见证自己的成长)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值