宝哥软件园

使用Spring boot jQuery上传文件(科特林)功能实例详解

编辑:宝哥软件园 来源:互联网 时间:2021-09-04

文件上传也是常见的功能,趁着周末,用板簧罩来实现一遍。

前端部分

前端使用jQuery,这部分并不复杂,jQuery可以读取表单内的文件,这里可以通过表单数据对象来组装键值对,表单数据这种方式发送表单数据更为灵活。你可以使用它来组织任意的内容,比如使用

formData.append('test1 ',' hello world ');在科特林后端就可以使用@RequestParam('test1 ')问候:字符串来取得他的值。

在本例的上传中,表单数据用于装配上传表单,就像这样:

函数uploadfile(){ var formData=new formData();$.每个($('input[type='file']')[0].文件,函数(I,file){ formdata。追加('上传文件',文件);});$.ajax({ url: '/upload ',method: 'post ',data: formData,processData: false,contentType: false }).完成(函数(RES){ if(RES . success){ $(' # message ').文本(RES . message RES . files$('#message ').addClass(')绿色)$('#message ').移除CLaSS(' red ')} else { $(' # message ').文本('无法上传文件,原因: ' res.message) $('#message ').addClass('red') $('#message ').removeClass(“”绿色')} })。失败(函数(res) { }) }使用表单数据对象,在前端连形式标签都不需要。

其中关于上面代码的几点解释:

•如果投入标签上使用了多重的,那么用户可能选择多个文件,所以再装配表单数据的时候,需要上面的每个循环。

内容类型:为假设置成错误的告诉jQuery在页眉里不要用任何的内容类型。

processData: false:告诉jQuery不用讲传输内容编码(因为默认的内容类型是应用程序/x-www-form-urlencoded)。如我们要发送数字正射影像图或确实不需要编码的对象,就把这个参数设成假的。

注意:

•如果不将contentType设置成假的,科特林后端会报异常

当前请求不是多部分请求

•如果没有将processData设成false,javascript会报错:

未捕获的类型错误:非法调用

•如果要上传多个文件,在投入标签上设置多个的属性。

后端部分

后端准备在上传完成后,给前端回复一个成功或失败的信息,为此,创建一个返回的对象:

类上传结果(值成功:布尔值,值消息:字符串,值文件:数组成功:)告诉前端是否上传成功

信息:服务器端往前端返回的信息,可以包含任意后端想返回的内容,比如今天服务器所在地天气不好,所以服务器打算拒绝非管理员的上传请求。

文件:上传成功了哪些文件。

后端的关键代码:

@ response body @ post mapping(' upload ')fun upload(@ request part(' upload-file ')上传文件: arraymultipart文件):上传结果{ if(上传文件。count()==0)返回上传结果(假,”未检测到上传文件",Arrayof())val dir=env。GetProperty(' com ._ 1b2m。defaultuploaddir ')val f : File=File(dir)if(!f . exists()){ f . mkdirs()} for(上传文件中的文件){ val fileName=file。originalfilename字符串=路径。获取(目录,文件名)。toString()val stream : bufferedoutputstream=bufferedoutputstream(文件输出流(文件(文件路径)))流。写入(文件。字节)流。close()}返回上传结果(真),"已成功上载您的文件,上传文件。映射{ it。originalfilename } .toTypedArray())}注意:

在科特林中的RequestPart(')上传文件'),和前端的formData.append('上传文件,文件)要保持一致,我这里用的变量叫上传文件,如果不一致,后端就没有取到数据了。

本文涉及到的源代码:https://github。com/syler/Fun/tree/master/spring-boot-file-upload-with-jquery

最后上一张截图,图片上传成功:

以上是边肖介绍的使用Spring boot jQuery上传文件(kotlin),希望对大家有所帮助。如果你有任何问题,请给我留言,边肖会及时回复你的!

更多资讯
游戏推荐
更多+