文件上传

1.文件上传中需要注意的一些问题:

文件上传的必要前提:

一、form表单的enctype必须是multipart/form-data;以二进制字节流进行提交 传统接收参数的方式无效

二、method属性为post;

三、提供

借助第三方的组件实现文件上传,所需jar包:commons-fileupload.jar和commons-io.jar


传统方式代码实现:

@RequestMapping(path="/test")

public String test1(HttpServletRequest req)throws Exception {

//使用fileupload组件进行文件上传

    //指定文件上传的位置

    String path1 = req.getSession().getServletContext().getRealPath("/uploads/");

File file =new File(path1);

if(!file.exists()){

file.mkdirs();

}

//解析request对象,得到上传文件项

    DiskFileItemFactory fileitem =new DiskFileItemFactory();

//核心操作类

    ServletFileUpload upload =new ServletFileUpload(fileitem);

//解析request

    List fileItems = upload.parseRequest(req);

//遍历

    for(FileItem items:fileItems){

//进行判断,当前item对象是否是上传文件项

        if(items.isFormField()){

//说明是普通表单项

        }else{

//说明是文件项,获取文件名称

            String name = items.getFieldName();

//把文件名称设置成唯一值

            String uuid = UUID.randomUUID().toString().replace("-","");

name+=uuid+"_";

System.out.println(name);

//完成文件上传

            items.write(new File(path1,name));

//删除临时文件;

            items.delete();

}

}

return "success";

}


springmvc代码实现:

你可能感兴趣的:(文件上传)