登录
注册
写文章
发现
工具
ajax上传文件
_3t3lfz KEKfID
编辑文章
ajax上传文件
asfx站长
2020.08.17 22:32:40
阅读
1128
html ```html 上传文件: <input id="my_file" type="file"> <br/> <button id="btn_start">开始上传</button> ``` js ```javascript $('#btn_start').click(function(){ var _file = $('#my_file')[0].files[0]; if(_file == null){ alert('请选择文件!'); return; } var formData = new FormData();//定义一个form表单对象 formData.append("file", _file);//文件 formData.append("myType", 'xxx');//添加自定义参数 $.ajax({ url: basePath + 'upload/file', dataType:'json', type: 'POST', async: false,//同步 data: formData, processData : false, // 使数据不做处理 contentType : false, // 不要设置Content-Type请求头 success: function (resp) { if(resp.code == 200){//成功 //执行成功 } else { //执行失败了... alert(resp.msg); } } ,error:function(resp){ console.log(resp); } }) }); ``` java ```java //接收上传文件 @PostMapping("/upload/file") @ResponseBody public Response upload(@RequestParam(value = "file", required = true) MultipartFile file, HttpServletRequest request, HttpServletResponse response) throws Exception{ String myType = request.getParameter("myType");//业务参数 long fileSize = file.getSize();//文件大小,这里可以做限制判断 String fileName = file.getOriginalFilename();//获取文件名 String fileSuffix = fileName.substring(fileName.lastIndexOf(".") + 1);//获取文件后缀 String md5 = MD5Utils.getMD5(file.getInputStream());//获取文件md5 File targetFile = new File("目标文件名");//目标存储文件 File parentFile = targetFile.getParentFile();//目标文件父级路径 try{ if(!parentFile.exists()){ parentFile.mkdirs();//父目录不存在先创建 } file.transferTo(targetFile);//写入(存储为)目标文件 }catch(Exception e){ return Response.error("文件写入失败!"); } //TODO 数据库记录... return Response.ok(); } ``` 获取文件md5 ```java /** * 根据输入流获取文件的md5值 * @param inputStream * @return */ public static String getMD5(InputStream inputStream) { try { MessageDigest md = MessageDigest.getInstance("MD5"); byte[] buffer = new byte[8192]; int length; while ((length = inputStream.read(buffer)) != -1) { md.update(buffer, 0, length); } return new String(Hex.encodeHex(md.digest())); } catch (Exception e) { e.printStackTrace(); return null; } finally { } } ```
我的主页
退出