jquery+ajax+controller+springBoot 上传资源到指定文件夹

前端部分

<input type="file" id="file" name="docfile" class="form-control required " accept="application/msword"/>
var formData=new FormData();
var file=$("#file")[0].files[0];
formData.append("file",file);
$.ajax({
        url: '/sectionController/getFile',
        type: 'POST',
        cache:false,
        processData: false,//不处理数据
        data: formData,//直接把formData这个对象传过去
        dataType : 'json',
        contentType:false,// 主要设置你发送给服务器的格式,设为false代表不设置内容类型
        success: function(data){
          if(data.result=="success"){
            alert("success");
          }else{
            alert("error");
          }
        }
});

之前以为没有设置contentType一直报参数错误的bug

后台接收——其实原理就是资源上传到服务器是以字节流的形式传的,我们只要在(想把资源存放到的路径)下新建一个同名的文件(资源的名字可以通过file.getOriginalFilename()获取),然后再吧字节流写入新建的文件中。

@RequestMapping("/getFile")
	public String getPPT(HttpServletRequest request,@RequestParam("file") MultipartFile file) throws Exception{
        //System.out.println(filePPT.getOriginalFilename());可获取上传资源的文件名
		BufferedOutputStream stream=null;
		Map<String,Object> resultMap=new HashMap<>();
		String filePath="E:\\bishe\\SEWebsite\\src\\main\\webapp\\ppt\\";//资源要存放的路径
		if(!file.isEmpty()){
			try {
				byte[] bytes=file.getBytes();
				String savePath=filePath+filePPT.getOriginalFilename();
				stream=new BufferedOutputStream(new FileOutputStream(new File(savePath)));
				stream.write(bytes);
				stream.close();
				resultMap.put("result","success");
			} catch (Exception e) {
				resultMap.put("result","failure");
				e.printStackTrace();
				return JSONObject.toJSONString(resultMap).toString();
			}
		}else{
			resultMap.put("result","failure");
			return JSONObject.toJSONString(resultMap).toString();
		}
		return JSONObject.toJSONString(resultMap).toString();
	}

上传资源是由限制的,如果资源过大,后台会报错

在application.properties中加入

#fileSize
spring.server.MaxFileSize=300MB
spring.server.MaxRequestSize=500MB

然后新建一个类来处理

@Configuration
public class TomcatConfig {
	 	
		@Value("${spring.server.MaxFileSize}")
	    private String MaxFileSize;
	    @Value("${spring.server.MaxRequestSize}")
	    private String MaxRequestSize;

	    @Bean
	    public MultipartConfigElement multipartConfigElement() {
	        MultipartConfigFactory factory = new MultipartConfigFactory();
	        //  单个数据大小
	        factory.setMaxFileSize(MaxFileSize); // KB,MB
	        /// 总上传数据大小
	        factory.setMaxRequestSize(MaxRequestSize);
	        return factory.createMultipartConfig();
	    }
}

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值