纸上谈坑
在我实现了这个功能之前,我讲讲我是怎么在这个坑里爬上来的:
我实现上传文件后端的接口的参数是string类型的
前台传的参数:http://tmp/wx忽略很多字母数字.png
但由于这张是本地照片url(外网无法访问),我后台拿到的是一个string类型,是没有办法是去识别这是一张图片的,访问不了这个数据,仅仅把它当做字符串而已。(低级错误)
代码实现
前言:后端接受文件有2种方式(参数): 1. multipartfile 2.base64
微信上传文件的开发文档
小程序代码
<!-- index.wxml -->
<view>
<view>文件上传</view>
<view>
<input id="file" type="file" bindtap="uploader"></input>
</view>
</view>
// index.js
page({
data: {
},
uploader: function () {
wx.chooseimage({
count: 1,
success: function(res) {
let imgpath = res.tempfilepaths[0]
wx.uploadfile({
url: 'http://localhost:8080/customerregister/uploadpricture',
filepath: imgpath,
name: 'files',
success:res=>{
console.log(res)
}
})
}
})
},
})
java后端代码
@requestmapping(value = "/customerregister",produces = "application/json;charset=utf-8")
public class {
@requestmapping("/uploadpricture")
@responsebody
public string uploadpricture(@requestparam("file") multipartfile[] file) throws ioexception {
multipartfile multipartfile = file[0];
system.out.println("图片名称:"+multipartfile.getoriginalfilename());
inputstream inputstream = multipartfile.getinputstream();
return "{"mas":"ok"}";
}
p.s. 注意:这是一个ssm项目,因此你需要在pom.xml中添加依赖和在springmvc.xml中添加以下代码(这个问题搞了我几个小时,因为少了上传文件的配置,就会导致multipartfile这个类失效)
<!--pom.xml 文件上传所需要的依赖-->
<dependency>
<groupid>commons-fileupload</groupid>
<artifactid>commons-fileupload</artifactid>
<version>1.3.3</version>
</dependency>
<!--springmvc.xml-->
<!-- springmvc上传文件时,需要配置multipartresolver处理器 -->
<bean id="multipartresolver" class="org.springframework.web.multipart.commons.commonsmultipartresolver">
<property name="defaultencoding" value="utf-8"></property>
<!-- 指定所上传的总大小不能超过1t。注意maxuploadsize属性的限制不是针对单个文件,而是所有文件 -->
<property name="maxuploadsize" value="10485760000" />
<property name="maxinmemorysize" value="40960" />
</bean>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持www.887551.com。