.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 ...
随机推荐
- ios---CoreLocation框架实现定位功能
CoreLocation框架实现定位功能(iOS8.0之后) // // ViewController.m // 定位 // // Created by admin on 2017/9/20. // ...
- asp.net core 2.2升到3.1遇到的问题小记
趁着武汉疫情,在家研究原来2.2的框架升级到3.1的问题,在过程中遇到不少坑,好在放假有的是时间,一个一个解决,现做个简要记录,供大家参考.推荐认真看这篇文章 [https://docs.micros ...
- Python小白入门题一——文件增删改
题目描述:用python对文件进行增(创建一个文件).删(删除一个文件).改(重命名)操作. 说明:新建了一个文件夹files存放新增的两个文件,随后这两个文件被批量重命名成“数字.txt”,之后这两 ...
- centos6.8安装lnmp
一.配置CentOS 第三方yum源(CentOS默认的标准源里没有nginx软件包) [root@localhost ~]# yum install wget #安装下载工具wget[root@lo ...
- 用JavaScript完成页面自动操作
在之前的一篇<JavaScript实现按键精灵>中曾记录了几个事件对象,本文将会对它们进行一次实战,要完成的动作包括滚动.点击和翻页. 一.滚动 滚动是通过修改容器元素的scrollTop ...
- 低功耗设计技术--Multi VDD--Level shifter
本文转自:自己的微信公众号<集成电路设计及EDA教程> 前面的推文中我们分别介绍了低功耗设计中的Multi-VDD技术以及门控电源技术.在实际的低功耗设计中,门控电源技术中也常常结合Mul ...
- 火狐的一个bug
发现这个bug是因为最近眼睛不太好,所以网页大小都是正常大小的140% 就发现火狐游览器好多网页上的输入框与按钮对不齐 测试代码 <!DOCTYPE html> <html lang ...
- 林大妈的JavaScript进阶知识(一):对象与内存
JavaScript中的基本数据类型 在JS中,有6种基本数据类型: string number boolean null undefined Symbol(ES6) 除去这六种基本数据类型以外,其他 ...
- PHP反序列化中过滤函数使用不当导致的对象注入
1.漏洞产生的原因 #### 正常的反序列化语句是这样的 $a='a:2:{s:8:"username";s:7:"dimpl3s";s:8:"pa ...
- Codeforces Round #620 F2. Animal Observation (hard version) (dp + 线段树)
Codeforces Round #620 F2. Animal Observation (hard version) (dp + 线段树) 题目链接 题意 给定一个nm的矩阵,每行取2k的矩阵,求总 ...