.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 ...
随机推荐
- Rainbow Plan团队项目第一次作业——项目计划
团队项目--Rainbow Plan英语学习App 1.团队简介 1.1团队名称:Rainbow Plan (彩虹计划) 1.2团队成员: 队员学号 队员姓名 201731024235 何继武(组长) ...
- CAP原理和BASE理论
CAP原理 概述 CAP理论的主要场景是在分布式环境下,在单机环境下,基本可不考虑CAP问题. CAP理论就是说在分布式存储系统中,最多只能实现上面的两点.而由于当前的网络硬件肯定会出现延迟丢包等问题 ...
- 一个基于RabbitMQ的可复用的事务消息方案
前提 分布式事务是微服务实践中一个比较棘手的问题,在笔者所实施的微服务实践方案中,都采用了折中或者规避强一致性的方案.参考Ebay多年前提出的本地消息表方案,基于RabbitMQ和MySQL(JDBC ...
- C语言寒假大作战03
这个作业属于哪个课程 软件4班 这个作业要求在哪里 C语言寒假大作战03 这个作业的目标 增加菜单程序各年级题目操作函数 参考文献 随机数rand 2.2.2 设计思路和遇到的问题 这次作业写好没多久 ...
- CCNA的基础知识及要点
一.CCNA中的基础知识及要点: 2.网线的制作:568B:橙白,橙,绿白,蓝,蓝白,绿,棕白,棕 568A的排线顺序从左到右依次为:白绿.绿.白橙.蓝.白蓝.橙.白棕.棕.实验目的:初学者常为做网线 ...
- pyspark 记录
import os import sys spark_name = os.environ.get('SPARK_HOME',None) if not spark_name: raise ValueEr ...
- 《剑指Offer》第二章(一)题3-8
为春招实习做准备,记录一下<剑指Offer>里面的面试题 第二章 面试题3:数组之中的重复数字. 这个题吧,虽然不难,但是不知道为什么就是看了很久,可能很久没有做算法题了.最后面一句话说的 ...
- 数据清洗:按照进行数据清洗,并将清洗后的数据导入hive数据库中。
虚拟机: hadoop:3.2.0 hive:3.1.2 win10: eclipse 两阶段数据清洗: (1)第一阶段:把需要的信息从原始日志中提取出来 ip: 199.30.25.88 ti ...
- python笔记22(面向对象课程四)
今日内容 讲作业 栈 顺序查找 可迭代对象 约束 + 异常 反射 内容详细 1.作业 1.1 代码从上到下执行 print('你好') def func(): pass func() class Fo ...
- C#开源组件DocX处理Word文档基本操作(二)
上一篇 C#开源组件DocX处理Word文档基本操作(一) 介绍了DocX的段落.表格及图片的处理,本篇介绍页眉页脚的处理. 示例代码所用DocX版本为:1.3.0.0.关于版本的区别,请参见上篇,而 ...