视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
微信小程序实现图片上传功能
2020-11-27 22:13:59 责编:小OO
文档

本文实例为大家分享了微信小程序实现图片上传功能的具体代码,供大家参考,具体内容如下

前端:微信开发者工具

后端:.Net

服务器:阿里云

这里介绍微信小程序如何实现上传图片到自己的服务器上

前端代码

data: { 
 productInfo: {} 
}, 
//添加Banner 
bindChooiceProduct: function () { 
 var that = this; 
 
 wx.chooseImage({ 
 count: 3, //最多可以选择的图片总数 
 sizeType: ['compressed'], // 可以指定是原图还是压缩图,默认二者都有 
 sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有 
 success: function (res) { 
 // 返回选定照片的本地文件路径列表,tempFilePath可以作为img标签的src属性显示图片 
 var tempFilePaths = res.tempFilePaths; 
 //启动上传等待中... 
 wx.showToast({ 
 title: '正在上传...', 
 icon: 'loading', 
 mask: true, 
 duration: 10000 
 }) 
 var uploadImgCount = 0; 
 for (var i = 0, h = tempFilePaths.length; i < h; i++) { 
 wx.uploadFile({ 
 url: util.getClientSetting().domainName + '/home/uploadfilenew', 
 filePath: tempFilePaths[i], 
 name: 'uploadfile_ant', 
 formData: { 
 'imgIndex': i 
 }, 
 header: { 
 "Content-Type": "multipart/form-data" 
 }, 
 success: function (res) { 
 uploadImgCount++; 
 var data = JSON.parse(res.data); 
 //服务器返回格式: { "Catalog": "testFolder", "FileName": "1.jpg", "Url": "https://test.com/1.jpg" } 
 var productInfo = that.data.productInfo; 
 if (productInfo.bannerInfo == null) { 
 productInfo.bannerInfo = []; 
 } 
 productInfo.bannerInfo.push({ 
 "catalog": data.Catalog, 
 "fileName": data.FileName, 
 "url": data.Url 
 }); 
 that.setData({ 
 productInfo: productInfo 
 }); 
 
 //如果是最后一张,则隐藏等待中 
 if (uploadImgCount == tempFilePaths.length) { 
 wx.hideToast(); 
 } 
 }, 
 fail: function (res) { 
 wx.hideToast(); 
 wx.showModal({ 
 title: '错误提示', 
 content: '上传图片失败', 
 showCancel: false, 
 success: function (res) { } 
 }) 
 } 
 }); 
 } 
 } 
 }); 
} 

后端上传代码(将文件上传到服务器临时文件夹内)

[HttpPost] 
public ContentResult UploadFileNew() 
{ 
 UploadFileDTO model = new UploadFileDTO(); 
 HttpPostedFileBase file = Request.Files["uploadfile_ant"]; 
 if (file != null) 
 { 
 //公司编号+上传日期文件主目录 
 model.Catalog = DateTime.Now.ToString("yyyyMMdd"); 
 model.ImgIndex = Convert.ToInt32(Request.Form["imgIndex"]); 
 
 //获取文件后缀 
 string extensionName = System.IO.Path.GetExtension(file.FileName); 
 
 //文件名 
 model.FileName = System.Guid.NewGuid().ToString("N") + extensionName; 
 
 //保存文件路径 
 string filePathName = System.IO.Path.Combine(CommonHelper.GetConfigValue("ImageAbsoluteFolderTemp"), model.Catalog); 
 if (!System.IO.Directory.Exists(filePathName)) 
 { 
 System.IO.Directory.CreateDirectory(filePathName); 
 } 
 //相对路径 
 string relativeUrl = CommonHelper.GetConfigValue("ImageRelativeFolderTemp"); 
 file.SaveAs(System.IO.Path.Combine(filePathName, model.FileName)); 
 
 //获取临时文件相对完整路径 
 model.Url = System.IO.Path.Combine(relativeUrl, model.Catalog, model.FileName).Replace("\\", "/"); 
 } 
 return Content(Newtonsoft.Json.JsonConvert.SerializeObject(model)); 
} 
/// <summary> 
/// 上传文件 返回数据模型 
/// </summary> 
public class UploadFileDTO 
{ 
 /// <summary> 
 /// 目录名称 
 /// </summary> 
 public string Catalog { set; get; } 
 /// <summary> 
 /// 文件名称,包括扩展名 
 /// </summary> 
 public string FileName { set; get; } 
 /// <summary> 
 /// 浏览路径 
 /// </summary> 
 public string Url { set; get; } 
 /// <summary> 
 /// 上传的图片编号(提供给前端判断图片是否全部上传完) 
 /// </summary> 
 public int ImgIndex { get; set; } 
} 
#region 获取配置文件Key对应Value值 
/// <summary> 
/// 获取配置文件Key对应Value值 
/// </summary> 
/// <param name="key"></param> 
/// <returns></returns> 
public static string GetConfigValue(string key) 
{ 
 return ConfigurationManager.AppSettings[key].ToString(); 
} 
#endregion

设置配置文件上传文件对应的文件夹信息

<appSettings> 
 <!--图片临时文件夹 绝对路径--> 
 <add key="ImageAbsoluteFolderTemp" value="D:\Images\temp" /> 
 <!--图片正式文件夹 绝对路径--> 
 <add key="ImageAbsoluteFolderFinal" value="D:\Images\product" /> 
 
 <!--图片临时文件夹 相对路径--> 
 <add key="ImageRelativeFolderTemp" value="http://192.168.1.79:9009/temp"/> 
 <!--图片正式文件夹 相对路径--> 
 <add key="ImageRelativeFolderFinal" value="http://192.168.1.79:9009/product"/> 
</appSettings> 

PS:上传到服务器的临时文件夹内,当用户点击保存才把这些文件移动到正式目录下。

下载本文
显示全文
专题