.net core 基于multipart/form-data的文件上传,这里以图片上传为例
首先传递的数据格式大概如下:
然后就可以在后端获取数据了:直接上代码了哈:
[HttpPost] ///分别获取 data数据和调用图片上传方法
public async Task<JsonResult> UploadDefault()
{
var data =Request.Form["data"];
var dataPosition=GetSortModel(data); //json反序列化为 list型
BootstrapFileResult res = await UploadCommonAsync(); //图片上传并返回 图片id
var picid = res.ImgId;
PicandPoint user = new PicandPoint();
user.LevelId = dataPosition[0].id;
user.PositionX = dataPosition[0].positionX;
user.PositionY = dataPosition[0].positionY;
user.FotoId = picid;
JsonResult result = await CreatePoint(user);
return result;
}
[HttpPost] ////将文件保存到指定路径,然后在存到数据库
public async Task<BootstrapFileResult> UploadCommonAsync()
{
////var data = Request.Form["data"];
var files = Request.Form.Files;
var baseDir = _options.ImgDir;
var res = new BootstrapFileResult();
var now = DateTime.Now;
if (!Directory.Exists(baseDir))
{
Directory.CreateDirectory(baseDir);
}
for (int i = 0; i < files.Count; ++i)
{
var newnamere = "";
var file = files[i];
var imgid = 0;
try
{
var orgName = file.FileName;
var newName = GetRandomFileName(orgName);
newnamere = newName;
imgid = await _indexer.StoreImageRecord(orgName, newnamere);
var filePath = baseDir + "/" + newName;
using (var stream = new FileStream(filePath, FileMode.Create))
{
await file.CopyToAsync(stream); //将图片写到指定文件夹
}
var bitmap = new ImageSharp.Image(file.OpenReadStream());
var width = bitmap.Width;
var height = bitmap.Height;
await _indexer.UpdateImageDataEx(imgid, width, height);
}
catch (Exception e) { continue; }
res.ImgId = imgid;
}
return res;
}
///这个方法是将获取到的 data为stringvalue类型数据转化为list型:
private List<UpPoint> GetSortModel(string sortModel)
{ List<UpPoint> list = new List<UpPoint>();
if (sortModel == null)
{
return list;
}
string array = $"[{sortModel}]";
var deserialized = JsonConvert.DeserializeObject<List<UpPoint>>(array);
return deserialized;
}
.net core 基于multipart/form-data的文件上传,这里以图片上传为例的更多相关文章
- Django 基于Ajax & form 简单实现文件上传
前端实现 <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="U ...
- input file实现多选,限制文件上传类型,图片上传前预览功能
限制上传类型 & 多选:① accept 属性只能与 <input type="file" /> 配合使用.它规定能够通过文件上传进行提交的文件类型. ② mu ...
- 用html5文件api实现移动端图片上传&预览效果
想要用h5在移动端实现图片上传&预览效果,首先要了解html5的文件api相关知识(所有api只列举本功能所需): 1.Blob对象 Blob表示原始二进制数据,Html5的file对象就继 ...
- 基于 Django的Ajax实现 文件上传
---------------------------------------------------------------遇到困难的时候,勇敢一点,找同学朋友帮忙,找导师求助. Ajax Ajax ...
- html5 file upload and form data by ajax
html5 file upload and form data by ajax 最近接了一个小活,在短时间内实现一个活动报名页面,其中遇到了文件上传. 我预期的效果是一次ajax post请求,然后在 ...
- Sending forms through JavaScript[form提交 form data]
https://developer.mozilla.org/en-US/docs/Learn/HTML/Forms/Sending_forms_through_JavaScript As in the ...
- 富文本编辑器 KindEditor 的基本使用 文件上传 图片上传
富文本编辑器 KindEditor 富文本编辑器,Rich Text Editor , 简称 RTE , 它提供类似于 Microsoft Word 的编辑功能. 常用的富文本编辑器: KindEdi ...
- java web图片上传和文件上传
图片上传和文件上传本质上是一样的,图片本身也是文件.文件上传就是将图片上传到服务器,方式虽然有很多,但底层的实现都是文件的读写操作. 注意事项 1.form表单一定要写属性enctype=" ...
- .NET Core Web API使用HttpClient提交文件的二进制流(multipart/form-data内容类型)
需求背景: 在需要通过服务端请求传递文件二进制文件流数据到相关的服务端保存时,如对接第三方接口很多情况下都会提供一个上传文件的接口,但是当你直接通过前端Ajax的方式将文件流上传到对方提供的接口的时候 ...
随机推荐
- PowerDNS简单教程(3):管理篇
目录: PowerDNS简单教程(1):安装篇 http://www.cnblogs.com/anpengapple/p/5205130.html PowerDNS简单教程(2):功能篇 http:/ ...
- Django中Settings中Templates的路径设置
## mysite/mysite/settings.py## mysite是项目名 TEMPLATES = [ { 'BACKEND': 'django.template.backends.djang ...
- FBKVOController代码阅读
功能:对kvo机制进行封装,简化使用,简化内存管理: 要素:观察者.被观察者.处理函数. 模式:注册表模式: 机制:对象创建.注册管理.内存管理.处理机制转换: 其它:注册去重: kvo的管理机制:
- PAT——1007. 素数对猜想
让我们定义 dn 为:dn = pn+1 - pn,其中 pi 是第i个素数.显然有 d1=1 且对于n>1有 dn 是偶数.“素数对猜想”认为“存在无穷多对相邻且差为2的素数”. 现给定任意正 ...
- [LuoguP2900] [USACO08MAR]土地征用(Land Acquisition)
土地征用 (Link) 约翰准备扩大他的农场,眼前他正在考虑购买N块长方形的土地.如果约翰单买一块土 地,价格就是土地的面积.但他可以选择并购一组土地,并购的价格为这些土地中最大的长 乘以最大的宽.比 ...
- datagrid和combobox简单应用
<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="ht ...
- win7系统安装VS2013后,连不上远程sqlserver数据库解决办法
刚搬了地方,顺便把电脑重做了系统,把sql2012和vs2013装好,怎么弄也连不上远程的数据库了,用程序连IIS直接死掉,用ssms连也是直接失去响应,开始以为是网线端口被运营商封杀了,最后发现不是 ...
- SignalR 教程一
转帖官方教程:Tutorial: Getting Started with SignalR 2 and MVC 5 http://www.asp.net/signalr/overview/gettin ...
- synchronized 控制并发(活动秒杀)
1.首先我们新建一个Controller用于秒杀: package com.imooc.Controller; import com.imooc.service.impl.SeckillService ...
- Oracle 11g监听器配置
Oracle 11g监听器配置 安装好oracle后,出现oracle监听器不能正确使用的问题,先后遇到问题: 1.Oracle ORA-12541:TNS:no listener 2.ORA-285 ...