因为公司还在使用老版本的layui,文件上传在新版本中全部重写了,这里记录下老版本layui的文件上传。
<强>前端代码:(引入layui相关包)强>
& lt;输入类型=拔募眑ay-type="文件" id=皒xxxx”名称=拔募眂lass=發ayui-upload-file”在
这里可以参考layui官方文档,有一点需要注意,名字属性是必需的,当你选择好文件后,名称属性的值,会在后台被相应的参数接收。
如果你只写了上面的代码,会发现文件上传的按钮消失了。这很正,常因为框架就是这么设计的。
layui.upload ({ url:/pay_channel/上传的 :功能(输入){//返回的参数项,即为当前的输入DOM对象 美元(输入)后(' & lt;输入类型=耙亍眓ame=" mchId-file " value=" https://www.yisu.com/zixun/11111 "/祝辞的);//layer.msg(“文件上传”中,{zIndex: 20180509}); } 成功:函数(res) { 如果(res)。代码=='成功'){ layer.msg (res.message {zIndex: 20180510}); certLocalPath=res.filePath 其他}{ layer.msg (res.message {zIndex: 20180510}); } } }); >之前url是请求地址,必须是AJAX请求(POST),必须返回JSON,返回的数据在成功中操作,以上代码简单易懂,不用照抄。
之前是指在上传请求进行之前,进行的一些操作,美元(输入)后(“& lt;输入类型=耙亍眓ame=" mchId-file " value=" + mchIdxx +”/祝辞的);这段代码是为了追加一个参数,参数名字位mchId-file,值为11111,所以后端接收会有两个参数,文件和mchId-file。
<强>后端代码:强>
@RequestMapping("/上传”) @ResponseBody 公共字符串importFile (MultipartFile文件,HttpServletRequest请求){ JSONObject对象=new JSONObject (); 尝试{ 字符串mchId=request.getParameter (“mchId-file”); 字符串originalFilename=file.getOriginalFilename ();//字符串dirPath=System.getProperty (“user.dir”) +“/wx”;//字符串dirPath=this.getClass () .getClassLoader () .getResource (" ") .getPath() +“天气”; 字符串dirPath="/xxxx/java/工资/wx/证书”; _log.info(“证书上传的文件目录{}”,dirPath); 字符串filePath="/" + mchId +“_”+ originalFilename; 布尔b=新文件(dirPath) .mkdirs (); 文件。transferTo(新文件(dirPath + filePath) .getAbsoluteFile ()); 对象。把(“filePath”, filePath); 对象。把(“代码”,“成功”); 对象。把(“信息”、“文件上传成功”); }捕捉(IOException e) { e.printStackTrace (); 对象。把(“代码”,“失败”); 对象。把(“信息”、“文件上传失败”); } 返回object.toJSONString (); } >之前获得的文件是MultipartFile类对象,org.springframework.web.multipart.MultipartFile
该对象可以获取文件名字getOriginalFilename,获取文件流getInputStream,传输到另一个文件的方法transferTo等。
以上后端方法是将获取到的文件,保存到另一个特别目录中去。
字符串dirPath=System.getProperty (user.dir ");//获取项目地址根目录,就是说你的工作空间中,该项目初始目录。
字符串dirPath=this.getClass () .getClassLoader () .getResource (" ") .getPath();//获取项目资源目录位置,即springboot中application.yml所在文件夹。
再windows中其实不需要写盘符来表示这个目录的绝对路径、弦dirPath="/xxxx/java/工资/wx/证书”,如果你项目在D盘,那绝对路径就会变成D:/xxxx/java/工资/wx/证书,这样就避免了服务器windows与linux的问题。
但有一点要注意:文件文件=新文件(dirPath + filePath) .getAbsoluteFile(),如果使用/开头,需要用getAbsoluteFile()获取到D:/xxxx/java/工资/wx/cert路径的文件对象。
以上这篇layui(1.0.9)文件上传上传、前后端的实例代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
layui(1.0.9)文件上传上传、前后端的实例代码