使用fileupload进行文件上传


// 上传路径
SimpleDateFormat dateformat = new SimpleDateFormat("yyyy/MM/dd/HH");
String pathdir = "/newsimages/uploadfile/"
+ dateformat.format(new Date());//

ServletContext realpathdir = request.getSession().getServletContext();
String path = realpathdir.getRealPath(pathdir);
// System.out.println(realpathdir);
// 如目录不存在,创建一个
File savedir = new File(path);
if (!savedir.exists())
{
savedir.mkdirs();
}

// 创建一个工厂类
DiskFileItemFactory factory = new DiskFileItemFactory();

factory.setRepository(savedir);

factory.setSizeThreshold(1024 * 1024);

ServletFileUpload fileuplod = new ServletFileUpload(factory);

int id = 0;
String fieldValue = "";
String filename = "";
try
{
// 解析各个表单域
List<FileItem> list = fileuplod.parseRequest(request);
for (FileItem fileItem : list)
{
if (fileItem.isFormField())
{
// 获得简单域的名字
String fieldName = fileItem.getFieldName();


// 获得简单域的值
fieldValue = fileItem.getString("UTF-8");

id = Integer.parseInt(fieldValue);

request.setAttribute(fieldName, fieldValue);
}
else
{
//获得file域的名字
String fieldName = fileItem.getFieldName();
//获得file域的值,带路径,即是路径+文件名
String value = fileItem.getName();
//取的file域的值的名字,不带路径
int pos = value.lastIndexOf("\\");
fieldValue = value.substring(pos+1);
//获得是file文件的内容,而不是路径+文件名
request.setAttribute(fieldName, fieldValue);
String ext = fieldValue.substring(fieldValue.length()-3).toLowerCase();
filename = UUID.randomUUID().toString()+ "."+ext;
//上传
fileItem.write(new File(savedir, filename));

}

News news = newsService.getNewsById(id);


news.setFile("/omservice"+pathdir+"/"+ filename);



news.setIsFocus(true);
news.setIsFirst(false);
newsService.saveNews(news);

//上传文件的路径///
request.setAttribute("imagepath", news.getFile());
}


}
catch(Exception e)
{
request.setAttribute("error", "上传失败!");
e.printStackTrace();
}

request.setAttribute("message", "上传成功!");
return mapping.findForward("success");
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值