.net core 3.1 webapi后端接收钉钉小程序post的文件/图片
世上本没路;走的人多了,便成了路。
dd.uploadFile({
url: '请使用自己服务器地址',
fileType: 'image',
fileName: 'file',
filePath: '...',
success: (res) => {
dd.alert({
content: '上传成功'
});
},
});
这就是官网上的例子,没有后端的。但是我猜这是用"Form"进行post提交的,那脑补后端可以在post请求的boby里获取这个文件。以下是成功的后端代码:
/// <summary>
/// 用户上传头像
/// </summary>
/// <param name="formCollection">Boby</param>
/// <param name="userid">userid</param>
/// <returns></returns>
[HttpPost, Route("postPhotoImage")]
public StatusCodeResult UserPostPhotoImage([FromForm] IFormCollection formCollection, string userid)
{
if (formCollection.Files.Count > )
{
var emp = JsonConvert.DeserializeObject<EmployeeDTO>(GetEmployeeInfo(userid));
string photo_path = @"C:\apache-tomcat-7.0.90\webapps\default\employeesProfilePicture\";
string photo_file = photo_path + emp.jobnumber + ".jpg";
if (System.IO.File.Exists(photo_file))
System.IO.File.Delete(photo_file);
try
{
#region 存储文件
using (FileStream fs = System.IO.File.Create(photo_file))
{
var file = formCollection.Files[];
file.CopyTo(fs);
int photo_width = ;
int photo_height = ;
Image img = ZoomImage(Image.FromStream(fs), photo_height, photo_width);
using (MemoryStream msResult = new MemoryStream())
{
Image resultImgage = new Bitmap(photo_width, photo_height);
Graphics g = Graphics.FromImage(resultImgage);
g.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
g.Clear(Color.White);
g.DrawImage(img, new RectangleF(, , photo_width, photo_height));
resultImgage.Save(msResult, ImageFormat.Png);
byte[] buffer = new byte[msResult.Length];
msResult.Seek(, SeekOrigin.Begin);
msResult.Read(buffer, , buffer.Length);
msResult.Close();
fs.Write(buffer, , buffer.Length);
}
fs.Flush();
Console.WriteLine(Environment.NewLine + "=========================*===========================");
Console.WriteLine(DateTime.Now + "->:Upload Photo,FileName:" + fs.Name);
Console.WriteLine("=========================*===========================" + Environment.NewLine);
}
#endregion
return Ok();
}
catch (Exception)
{
return BadRequest();
}
}
else
return BadRequest();
}
大伙需要注意[FromForm]标记,[FromBoby]是获取不到的!
let debug_domain='http://cquni.vaiwan.com:8771/api/ECard';
let domain ="http://218.?.?.?:8771/api/ECard";
let post_url=domain+'/postPhotoImage';
let photo_path='';
let current_user=''; Page({
data: {
src: ''
},
onLoad(query) {
current_user=query.userid;
},
photoselect(event){
let that = this;
dd.chooseImage({
count: 1,
success: (res) => {
photo_path=res.filePaths[0];
that.setData({
src:res.filePaths[0]
});
},
});
},
postimage(event){
const file_url = post_url+'?userid='+current_user;
if (photo_path==''){
dd.alert({
title:'出错啦!',
content: '请先选取或拍摄照片!预览满意后再提交上传。',
buttonText:'我晓得了'
});
return;
}
//dd.alert({content:file_url});
dd.uploadFile({
url: file_url,
fileType: 'image',
fileName: 'employee_photo',
filePath: photo_path,
success: (res) => {
dd.alert({
title:'恭喜',
content: '操作成功,头像已上传!',
buttonText:'我晓得了'
});
},
});
}
});
.net core 3.1 webapi后端接收钉钉小程序post的文件/图片的更多相关文章
- 小程序上传多图片多附件多视频 c#后端
前言: 最近在研究微信小程序,本人自己是C#写后端的;感觉小程序挺好玩的,就自己研究了一下:刚好今天又给我需求,通过小程序上传多图 然后C#后端保存到服务器: 用NET明白 前端上传需要用到流,然后就 ...
- ASP.NET WebAPI 双向token实现对接小程序登录逻辑
最近在学习用asp.net webapi搭建小程序的后台服务,因为基于小程序端和后台二者的通信,不像OAuth(开放授权),存在第三方应用.所以这个token是双向的,一个是对用户的,一个是对接口的. ...
- 微信小程序开发之多图片上传+服务端接收
前言: 业务需求,这次需要做一个小程序同时选中三张图片一起上传到服务端,后端使用的.NET WEBAPI接收数据保存. 使用技术: 在这章中将会使用到微信小程序wx.uploadFile(Object ...
- 钉钉/支付宝小程序和微信小程序的区别及转换方案
最近接到一个工作任务,是把钉钉小程序转微信小程序... 对,居然还有这种操作,之前只听过微信小程序转支付宝小程序的,钉钉转微信是什么鬼
- Spring Boot后端+Vue前端+微信小程序,完整的开源解决方案!
项目简介 一个小商场系统,包括: 后端:Spring Boot 管理员前端:Vue 用户前端:微信小程序 功能介绍 1.小商城 首页 专题列表.专题详情 分类列表.分类详情 品牌列表.品牌详情 新品首 ...
- 黄文俊:Serverless小程序后端技术分享
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 黄文俊,现任腾讯云SCF无服务器云函数高级产品经理,多年企业级系统开发和架构工作经验,对企业级存储.容器平台.微服务架构.无服务器计算等领域 ...
- [转]微信小程序开发(二)图片上传+服务端接收
本文转自:http://blog.csdn.net/sk719887916/article/details/54312573 文/YXJ 地址:http://blog.csdn.net/sk71988 ...
- 微信小程序小结(1) ------ 前后端交互及wx.request的简易封装
微信小程序的应用目前越来越多,不管喜欢与否我们都应该了解一些.废话不多,直接干货. 做项目自然避免不了前后端的交互,小程序在调试过程中需要在先在:小程序公众平台--设置--开发设置中,将要从后台请求的 ...
- 微信小程序aes前后端加密解密交互
aes前后端加密解密交互 小程序端 1. 首先引入aes.js /** * [description] CryptoJS v3.1.2 * [description] zhuangzhudada so ...
随机推荐
- Ogre 的Node 位移、旋转
位移旋转有三种方式TS_LOCAL,TS_PARENT,TS_WORLD. TS_LOCAL是指自身坐标系,TS_PARENT是父节点坐标系,TS_WORLD是世界坐标系 比如 translate( ...
- 01--java--语言概述
啦啦啦~~~我又开始想学习了...第一次学Java... JAVA主要版本 1.Java SE(java Platform,Standard Edition) java SE以前称为J2SE.它允许开 ...
- 'NoneType' object has no attribute shape
使用cv2读取图片时,输出图片形状大小时出现报错“ 'NoneType' object has no attribute shape”,后来排查发现读取图片的返回值image为None, 这就说明图片 ...
- 2、初始ES6及Vue
今日内容 es6的语法 let 特点: 1.局部作用域 2.不会存在变量提升 3.变量不能重复声明 const 特点: 1.局部作用域 2.不会存在变量提升 3.不能重复声明,只声明常量 不可变的量 ...
- Day8-Python3基础-Socket网络编程
目录: 1.Socket语法及相关 2.SocketServer实现多并发 Socket语法及相关 socket概念 socket本质上就是在2台网络互通的电脑之间,架设一个通道,两台电脑通过这个通道 ...
- ios--->ios沙盒总结
ios沙盒总结 沙盒介绍 iOS应用程序只能在该程序创建的文件系统中读取文件,不可以去其它地方访问,此区域被成为沙盒,所以所有的非代码文件都要保存在此,例如图像,图标,声音,映像,属性列表,文本文件等 ...
- ts和nts的区别 (redis中碰到)
[TS指Thread Safet y线程安全 NTS即None-Thread Safe 非线程安全] 区别:[TS NTS] TS指Thread Safety,即线程安全,一般在IIS以ISAPI ...
- Java8新特性一点通 | 回顾字符转日期&JoinArray使用
StringToDate日期转换 Join Array使用 StringToDate日期转换 Convert string to date in ISO8601 format 利用LocalDate. ...
- 暑假第七周总结(安装MongoDB和Tomcat以及MongoDB进行编程实践)
本周主要对MongoDB和Tomcat进行了安装,两项安装都遇到了一些问题.其中在对MongoDB安装过程中出现了什么没有秘钥安全证书的,最终找了一堆教程重复了好多遍之后安装成功,虽然在启动和关闭的时 ...
- 2019icpc西安邀请赛
来源:https://www.jisuanke.com/contest/2625?view=challenges 更新中 A.Tasks 直接贪心 代码:听说当时很多队伍提前拆题甚至上机了,所以很多0 ...