ajax提交表单数据和上传文件
2024-08-31
39
想要通过ajax异步提交表单,表单内包含要上传的文件。正常提交Post提交表单没有问题,那么通过jquery的ajax方法如何构建提交数据呢?
下面以jquery的$ajax方法为例:
let formData = new FormData(document.getElementById('accountForm'));
$.ajax({
type: 'POST',
url: '/account',
data: formData,
dataType: 'json',
contentType: false,
processData: false,
success: function (result) {
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
}
});
其中,contentType设置为false,表示提交到服务端的数据不要当成字符串处理。
processData设置为false,表示不要把发送的数据转换成查询字符串。
服务端接收文件的代码以.NET Core MVC为例:
[HttpPost]
public async Task<IActionResult> IndexAsync(UserRequest request)
{
var userState = HttpContext.GetUserState();
if (HttpContext.Request.Form.Files.Count > 0)
{
var file = HttpContext.Request.Form.Files[0];
var extension = Path.GetExtension(file.FileName);
var newFileName = $"{DateTime.Now.ToString("HHmmssfff")}{extension}";
var path = $"{DateTime.Now.ToString("yyyyMMdd")}";
var url = $"/upload/{path}/{newFileName}";
var filePath = $"{_env.WebRootPath}\\upload\\{path}";
if (!Directory.Exists(filePath))
{
Directory.CreateDirectory(filePath);
}
using (FileStream filestream = System.IO.File.Create($"{filePath}\\{newFileName}"))
{
await file.CopyToAsync(filestream);
filestream.Flush();
}
request.Thumbnail = url;
}
}
直接通过HttpContext.Request.Form.Files得到文件就可以保存了。
赞一波!
相关文章
- 文件上传JavaScript库FilePond使用教程
- Web应用安全之八种安全的文件上传方式
- .NET Core Razor Page ajax请求返回400 Bad request
- .NET Core MVC判断是否是ajax请求
- PHP CURLFile函数模拟实现文件上传展示
- 阻止HTML表单提交跳转页面,使用 Jquery Ajax 请求接口
- layui表单引入ueditor遇坑记
- ThinkPHP6.0 判断是否有文件上传
- ThinkPHP6.0七牛云文件上传封装
- ThinkPHP6.0内置文件上传封装类
- 解决PHP开发中的文件上传安全问题
- .NET Core WebAPI 实现文件上传功能
- HTML表单文件上传及下载功能代码示例
- jquery ajax如何异步上传图片
- 万能表单全站调用方法
文章评论
评论问答