上传文件到服务器

jsp页面给一个form表单提交文件

 <form action="/user/upload" method="post" enctype="multipart/form-data">
        <input id="File1" name="fileupload" multiple="multiple" type="file" value="" />
        <input type="submit" value="上传" />
    </form>
controller

 /**
     * 保存上传的文件
     * @param request  the request
     * @param response the response
     */
    @RequestMapping(value = "upload",method = RequestMethod.POST)
    public void upload(HttpServletRequest request, HttpServletResponse response){
        String name = userService.upload(request);
       if(name != null){
            super.setFormJson(response,true,name,"文件上传成功!");
       }else{
           super.setFormJson(response,false,name,"文件上传失败!");
       }


    }

serverImpl

/**
     * 上传文件
     * @param request
     */
    public String upload(HttpServletRequest request){
        try{
            /*普通request是无法解析请求中的文件的。
             MultipartHttpServletRequest是springmvc框架中的一个接口,默认实现类是DefaultMultipartHttpServletRequest*/
            DefaultMultipartHttpServletRequest multipartRequest = (DefaultMultipartHttpServletRequest) request;
            //读取文件,fileupload是前台jsp文件选择框中的name
            List<MultipartFile> files =  multipartRequest.getFiles("fileupload");
            //上传文件
            String name = "";
            for(MultipartFile multiparfile:files){
                name +=  ","+FileUtil.save(multiparfile, "D://360Downloads");
            }
            return name.substring(1);
        }catch(Exception e){
            e.printStackTrace();
        }
        return null;
    }

FileUtil.java
/**
	 * 保存文件到本地
	 *
	 * @param muliRequest the muli request
	 * @param path        the path
	 * @return 返回文件名称 “file1,file2,file3”
	 */
	public static String save(MultipartFile muliRequest, String path) {
		String filenames = "";
		try {
			//创建file对象 path可以为文件也可以为文件夹
			File outputFile = new File(path);
			//文件夹不存在-创建
			if (!outputFile.exists()) {
              outputFile.mkdirs();
            }
            //获得输入流
			InputStream bis = muliRequest.getInputStream();
			//文件名
			String originalFilename = muliRequest.getOriginalFilename();
			//文件后缀
			String suffix = "";
			if(originalFilename.lastIndexOf(".") != -1){
				suffix = originalFilename.substring(originalFilename.lastIndexOf("."));
			}
			//String filename = MD5.getUUID()+suffix;
			String filename = originalFilename;
			//文件储存的全路径
			filenames = path+"/"+filename;
			System.out.println(filename);
			//创建文件输出流
			FileOutputStream fos = new FileOutputStream(new File(
					path,filename));
			BufferedOutputStream bos = new BufferedOutputStream(fos);
			Streams.copy(bis, bos, true);
		} catch (IOException e) {
			e.printStackTrace();
		}
		return filenames;
	}



  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值