这篇文章给大家介绍怎么在微信小程序中实现上传图片功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
成都创新互联-专业网站定制、快速模板网站建设、高性价比澜沧网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式澜沧网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖澜沧地区。费用合理售后完善,10余年实体公司更值得信赖。wxml文件代码:
营业执照 {{imageList.length}}/{{count[countIndex]}}
js文件代码
chooseImage: function () { var that = this; console.log('aaaaaaaaaaaaaaaaaaaa') wx.chooseImage({ count: this.data.count[this.data.countIndex], success: function (res) { console.log('ssssssssssssssssssssssssss') //缓存下 wx.showToast({ title: '正在上传...', icon: 'loading', mask: true, duration: 2000, success: function (ress) { console.log('成功加载动画'); } }) console.log(res) that.setData({ imageList: res.tempFilePaths }) //获取第一张图片地址 var filep = res.tempFilePaths[0] //向服务器端上传图片 // getApp().data.servsers,这是在app.js文件里定义的后端服务器地址 wx.uploadFile({ url: getApp().data.servsers + '/weixin/wx_upload.do', filePath: filep, name: 'file', formData: { 'user': 'test' }, success: function (res) { console.log(res) console.log(res.data) var sss= JSON.parse(res.data) var dizhi = sss.dizhi; //输出图片地址 console.log(dizhi); that.setData({ "dizhi": dizhi }) //do something }, fail: function (err) { console.log(err) } }); } }) }, previewImage: function (e) { var current = e.target.dataset.src wx.previewImage({ current: current, urls: this.data.imageList }) }
java 后端代码:
//获取当前日期时间的string类型用于文件名防重复 public String dates(){ Date currentTime = new Date(); SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmss"); String dateString = formatter.format(currentTime); return dateString; } @RequestMapping("wx_upload.do") public void uploadPicture(HttpServletRequest request, HttpServletResponse response,PrintWriter writer) throws Exception { System.out.println("进入get方法!"); //获取从前台传过来得图片 MultipartHttpServletRequest req =(MultipartHttpServletRequest)request; MultipartFile multipartFile = req.getFile("file"); //获取图片的文件类型 String houzhu=multipartFile.getContentType(); int one = houzhu.lastIndexOf("/"); System.out.println(houzhu.substring((one+1),houzhu.length())); System.out.println(multipartFile.getName()); //根据获取到的文件类型截取出图片后缀 String type=houzhu.substring((one+1),houzhu.length()); System.out.println(multipartFile.getContentType()); String filename; // request.getRealPath获取我们项目的根地址在加上我们要保存的地址 String realPath = request.getRealPath("/upload/wximg/"); try { File dir = new File(realPath); if (!dir.exists()) { dir.mkdir(); } //获取到当前的日期时间用户生成文件名防止文件名重复 String filedata=this.dates(); //生成一个随机数来防止文件名重复 int x=(int)(Math.random()*1000); filename="zhongshang"+x+filedata; System.out.println(x); 将文件的地址和生成的文件名拼在一起 File file = new File(realPath,filename+"."+type); multipartFile.transferTo(file); //将图片在项目中的地址和isok状态储存为json格式返回给前台,由于公司项目中没有fastjson只能用这个 JSONObject jsonObject=new JSONObject(); jsonObject.put("isok",1); jsonObject.put("dizhi","/upload/wximg/"+filename+"."+type); writer.write(jsonObject.toString()); } catch (IOException e) { e.printStackTrace(); } catch (IllegalStateException e) { e.printStackTrace(); } }
来看一下之前在前端js输出的内容:
关于怎么在微信小程序中实现上传图片功能就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。