<div class="row cl"> <label class="form-label col-xs-4 col-sm-3">请选择上传文件:</label> ## <br/> <div id="container" class="formControls col-xs-3 col-sm-3" > <input type="file" id="selectfiles" name="selectfiles" ></input> <button id="btnfile" name ="btnfile" class='btn'>提交</button> ## <a id="postfiles" href="javascript:void(0);" class='btn'>开始上传</a> οnclick="choose(this)" </div> <label id="console"></label> </div>
$("#btnfile").click(function (){ var myfile = document.getElementById("selectfiles").files[0]; var formData = new FormData(); formData.append('fileUpload',myfile); $.ajax({ type: 'POST', url: '/xqjr/website/file/fileUpload', data:formData, processData:false, contentType:false, success: function(data){ // alert("1111111"); }, error:function(data) { console.log(data.msg); }, }); })
/** * 实现文件上传 * */ @RequestMapping(value = "/fileUpload",method = RequestMethod.POST) @ResponseBody public ResultDO fileurl(@RequestParam("fileUpload") MultipartFile fileUpload,HttpSession session ){ ResultDO resultDO = new ResultDO(); if(fileUpload.isEmpty()){ resultDO.setCode(StatusCode.HTTP_FAILURE); resultDO.setMsg("上传文件不能为空"); return null; } //获取文件名称 String fileName = fileUpload.getOriginalFilename(); session.setAttribute("filename",fileName); //文件大小 int size=(int) fileUpload.getSize(); System.out.println(fileName+"cxvcv"+size); String suffix = fileName.substring(fileName.lastIndexOf(".")+1);//后缀 // 本地路径 String savaPath="E:/test"; File filesave = new File(savaPath); //判断上传文件的保存目录是否存在 if (!filesave.exists() && !filesave.isDirectory()) { //创建目录 filesave.mkdirs(); } String fileurl=savaPath; try { // //获取item中的上传文件的输入流 InputStream in = fileUpload.getInputStream(); //创建一个文件输出流 FileOutputStream out = new FileOutputStream("E:/test/"+fileName); //创建一个缓冲区 byte buffer[] = new byte[1024]; //判断输入流中的数据是否已经读完的标识 int len = 0; //循环将输入流读入到缓冲区当中,(len=in.read(buffer))>0就表示in里面还有数据 while((len=in.read(buffer))>0){ //使用FileOutputStream输出流将缓冲区的数据写入到指定的目录(savePath + "\\" + filename)当中 out.write(buffer, 0, len); } //关闭输入流 in.close(); //关闭输出流 out.close(); } catch (Exception e) { e.printStackTrace(); resultDO.setCode(StatusCode.HTTP_FAILURE); resultDO.setMsg("上传失败"); return null; } resultDO.setData("上传成功"); return resultDO; }
下载
<a style="text-decoration:none" class="ml-5" href="/xqjr/website/download/file?id=${file.id}" title="下载">下载</a>
/** * 下载文件 * @return */ @RequestMapping(value = "/file",method = RequestMethod.GET) @ResponseBody public ResultDO file(int id, HttpServletRequest request, HttpServletResponse resp) throws IOException { ResultDO resultDO=new ResultDO(); //根据文件id提取文件信息 FileDO fileDO=fileService.select(id); System.out.println("文件信息"+fileDO); //获取文件路径 String filename=fileDO.getFileurl(); //获取文件路径 String fileurl=fileDO.getFileurl(); //截取文件名 String sb=filename; String a= sb.substring(8); FileInputStream input = new FileInputStream(fileurl); //设置响应头,对文件进行url编码 filename = URLEncoder.encode(a, "UTF-8"); resp.setHeader("Content-Disposition", "attachment;filename="+filename); resp.setContentLength(input.available()); ServletOutputStream output = resp.getOutputStream(); IOUtils.copy(input,output); input.close(); resultDO.setData("下载"); return resultDO; }