.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 ...
随机推荐
- python,for循环的使用案例集
1.循环执行某一系列操作.将该操作定义为一个def,然后使用for去循环执行该操作 思路,先把操作定义为一个函数,在for循环执行这个函数 比如下面案例,把微信好友列表内的好友,循环的方式依次调整到第 ...
- jemeter察看结果树中文乱码解决办法
在使用jemeter进行接口测试时,在察看结果树查看接口返回结果时,中文全部显示乱码,这个问题的解决方式如下: 在jemeter的安装路径下面,找到bin目录下, 在bin目录下面找到这个文件:jme ...
- Oracle:imp导入dmp文件
oracle命令行登录 sqlplus / as sysdba 创建用户 create user 用户 identified by 密码 ; 创建表空间 create tablespace 表空间名 ...
- c++中多文件的组织
参考书目:visual c++ 入门经典 第七版 Ivor Horton著 第八章 根据书中例子学习使用类的多文件项目. 首先要将类CBox定义成一个连贯的整体,在CBox.H文件中写入相关的类定义, ...
- 通过openjdk源码分析ObjectMonitor底层实现
通过openjdk源码分析ObjectMonitor底层实现 Hotspot JDK只是部分开源,将底层的调用C++的native方法的具体实现屏蔽了,而openjdk则将这部分也开源了,接下来我们通 ...
- Struts(六)
JSON(JavaScript Object Notation) 1.一种轻量级的数据交换格式 2.通常用于在客户端和服务器之间传递数据 3.jQuery的所有参数都是以JSON格式 ...
- ATL的GUI程序设计(2)
from:http://blog.titilima.com/atlgui-2.html 第二章 一个最简单窗口程序的转型 我知道,可能会有很多朋友对上一章的"Hello, World!&qu ...
- Codeforces_734_E
http://codeforces.com/problemset/problem/734/E 每次操作可以把连通的同颜色的点全部换颜色,缩点,找直径,第一遍dfs找起点,第二遍dfs求直径. #inc ...
- CCF_201612-2_火车购票
http://115.28.138.223/view.page?gpid=T46 水. #include<iostream> #include<cstring> #includ ...
- WeChall_ Training: Stegano I (Training, Stegano)
This is the most basic image stegano I can think of. 解题: 一张小图片,文本方式打开.