微信ウィジェットのアップロードとダウンロードファイル

29686 ワード

準備が必要な作業:
①、微信小プログラム工程を確立し、以下のコードを作成する.
②、IDEでspringboot+webプロジェクトを作成し、受信ファイルを作成し、ダウンロードファイルを提供する方式で、アップロードしたファイル関連情報をmysqlデータベースに記録する.詳細はhttps://www.cnblogs.com/chenfeifen/p/10261980.html
一、indexを配置する.wxml
 1 
 2 <view class="container">
 3   <view class="userinfo">
 4     <button bindtap="upload">     button>
 5     <button bindtap="download">     button>
 6   view>
 7   <view class="imginfo">
 8   <block wx:for="{{tempFilePaths}}" wx:key="{{index}}">
 9             <image src="{{item }}" bindtap="listenerButtonPreviewImage" data-index="{{index}}" style="width: 100%;"/>
10   block>
11   <block>  <image src='{{downloadPicturePath}}' bindtap='preview_download_picture'>image>
12   block>
13   view>
14 view>

二、indexを配置する.wxss
 1  1 /**index.wxss**/
 2  2 .userinfo {
 3  3   display: flex;
 4  4   /* flex-direction: column; */
 5  5   align-items: center;
 6  6 }
 7  7 .imginfo {
 8  8   display: flex;
 9  9   flex-direction: column;
10 10   align-items: center;
11 11 }
12 12 .userinfo-avatar {
13 13   width: 128rpx;
14 14   height: 128rpx;
15 15   margin: 20rpx;
16 16   border-radius: 50%;
17 17 }
18 18 
19 19 .userinfo-nickname {
20 20   color: #aaa;
21 21 }
22 22 
23 23 .usermotto {
24 24   margin-top: 200px;
25 25 }

三、indexを配置する.js
  1 //index.js
  2 //      
  3 const app = getApp()
  4 Page({
  5   /**
  6    *        
  7    */
  8   data: {
  9     tempFilePaths: [],
 10     downloadPicturePath:''
 11   },
 12   /**
 13    *       
 14    */
 15   upload: function () {
 16     let that = this;
 17     wx.chooseImage({
 18       count: 9, //   9
 19       sizeType: ['original', 'compressed'], //
 20       sourceType: ['album', 'camera'], //
 21       success: res => {
 22         wx.showToast({
 23           title: '    ...',
 24           icon: 'loading',
 25           mask: true,
 26           duration: 1000
 27         })  
 28         //                ,tempFilePath    img   src      
 29         let tempFilePaths = res.tempFilePaths;
 30         that.setData({
 31           tempFilePaths: tempFilePaths
 32         })
 33         /**
 34          *               
 35          */
 36         var count = 0;
 37           //    
 38         for (var i = 0; i < this.data.tempFilePaths.length;i++){
 39           wx.uploadFile({
 40             url: "http://*****/upload",//     url
 41             filePath: tempFilePaths[i],
 42             name: 'filename',
 43             header: {
 44               "Content-Type": "multipart/form-data"
 45             },
 46             success: function (res) {
 47               count++;
 48               //       ,        
 49               if (count == tempFilePaths.length) {
 50                 wx.hideToast();
 51               }
 52               wx.showToast({
 53                 title: '    ',
 54                 icon: '',
 55                 mask: true,
 56                 duration: 1500
 57               })  
 58             },
 59             fail: function (res) {
 60               wx.hideToast();
 61               wx.showModal({
 62                 title: '    ',
 63                 content: '      ',
 64                 showCancel: false,
 65                 success: function (res) { }
 66               })
 67             }
 68           });
 69         }
 70       }
 71     })
 72   },
 73   /**
 74    *        
 75    */
 76   preview_download_picture:function(){
 77       wx.previewImage({
 78         current: this.data.downloadPicturePath,
 79         urls: this.data.downloadPicturePath,
 80       })
 81   },
 82     /**
 83    *       
 84    */
 85   download:function(){
 86     var that = this;
 87     wx.downloadFile({
 88        url:"http://******/download", //
 89       success: function (res) {
 90         console.log(res)
 91         //           ,               success   ,                   
 92         if (res.statusCode === 200) {
 93           wx.playVoice({
 94              filePath: res.tempFilePath
 95           })
 96           wx.showToast({
 97             title: '    ',
 98             icon: '',
 99             mask: true,
100             duration: 1500
101           })
102           that.setData({
103             downloadPicturePath: res.tempFilePath//              
104           })
105         }
106         //          
107         // wx.saveImageToPhotosAlbum({
108         //     filePath: res.tempFilePath,
109         //   success:
110         //     function (data) {
111         //       console.log(data);
112         //       // wx.showModal({
113         //       //   title: '    ',
114         //       //   content: '    ',
115         //       // })
116         //       wx.showToast({
117         //         title: '    ',
118         //         icon: '',
119         //         mask: true,
120         //         duration: 1500
121         //       })  
122         //       that.setData({
123         //         downloadPicturePath: res.tempFilePath
124         //       })
125         //     },
126         // })
127       }
128     });
129   },
130   /**
131    *       
132    */
133   listenerButtonPreviewImage: function (e) {
134     let index = e.target.dataset.index;
135     let that = this;
136     wx.previewImage({
137       current: that.data.tempFilePaths[index],
138       urls: that.data.tempFilePaths,
139       //      
140       success: function (res) {
141         //console.log(res);
142       },
143       //     
144       fail: function () {
145         //console.log('fail')
146       }
147     })
148   },
149 
150   /**
151    *       --      
152    */
153   onLoad: function (options) {
154     
155   },
156 
157   /**
158    *       --          
159    */
160   onReady: function () {
161     
162   },
163 
164   /**
165    *       --      
166    */
167   onShow: function () {
168     
169   },
170 
171   /**
172    *       --      
173    */
174   onHide: function () {
175     
176   },
177 
178   /**
179    *       --      
180    */
181   onUnload: function () {
182     
183   },
184 
185   /**
186    *           --        
187    */
188   onPullDownRefresh: function () {
189     
190   },
191 
192   /**
193    *              
194    */
195   onReachBottom: function () {
196     
197   },
198 
199   /**
200    *          
201    */
202   onShareAppMessage: function () {
203     
204   }
205 })

 
 
  
転載先:https://www.cnblogs.com/chenfeifen/p/10261940.html