.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的方式将文件流上传到对方提供的接口的时候 ...
随机推荐
- MongoDB插入文档
db.collection.insertOne() 插入单个文档.db.collection.insertMany() 插入多个文档.db.collection.insert() 插入单/多个文档. ...
- springmvc使用map接收form表单的参数
其实只需要在map前面加上@RequestParam参数即可,jsp的name等都不变 public String queryByCondition(@RequestParam Map<Stri ...
- [转]C# 指针之美
将C#图像库的基础部分开源了(https://github.com/xiaotie/GebImage).这个库比较简单,且离成熟还有一段距离,但它是一种新的开发模式的探索:以指针和非托管内存为主的C ...
- sendmail启动报错
sendmail启动不了,报错如下: 解决方法: 在/etc/mail/sendmail.cf 配置文件中查找 Dj$w,并在此行下面增加这一行. Dj$w. 在/etc/hosts 增加一行 192 ...
- 关于readonly的一些说明
readonly在代码中只能在字段初始化器和构造函数中赋值,并不是说readonly只能赋值一次,超出这个范围以后readonly就不能通过代码修改了,但是还是可以用反射来修改,readonly仅仅是 ...
- 【转】优秀的Java程序员必须了解GC的工作原理
一个优秀的Java程序员必须了解GC的工作原理.如何优化GC的性能.如何与GC进行有限的交互,因为有一些应用程序对性能要求较高,例如嵌入式系统.实时系统等,只有全面提升内存的管理效率 ,才能提高整个应 ...
- EF Core 2.1 中的 Eager loading、Explicit loading和LazyLoading (转自MSDN)
Entity Framework Core allows you to use the navigation properties in your model to load related enti ...
- 小程序内嵌H5——判断小程序环境的坑
现在各种小程序风靡,这边H5的需求还没有搞定,产品又要求做小程序版本,做可以,关键是618前上线,我-- whatever,618要做推广,日期订了,剩下的就只能是排期,定方案,尽可能完成. 最后和产 ...
- 大数据框架-HDFS
HDFS:分布式文件系统,运行文件通过网络在多台主机分享的文件系统,分块写入(128M),适用于一次写入多次查询,不支持并发写(只能一块一块写),小文件不合适. nameNode(主节点,单个): 保 ...
- String.Format() 方法
一 定义 String.Format() 是将指定的 String类型的数据中的每个格式项替换为相应对象的值的文本等效项. string p1 = "Jackie"; string ...