.net文件上传
1.前端代码
<form id="uploadForm">
<input type="file" name="file" multiple />
<input type="button" value="上传" onclick="doUpload()" />
</form>
<script>
function doUpload() {
var formData = new FormData($("#uploadForm")[0]);
$.ajax({
url: url,
type: 'get',
data: formData,
async: false,
cache: false,
contentType: false,
processData: false,
success: function (returndata) {
alert(returndata);
},
error: function (returndata) {
alert(returndata);
}
});
}
</script>
2.后端代码
/// <summary>
/// 上传文件(支持多个) .net core
/// </summary>
public async Task<IActionResult> UploadFile()
{
var date = Request;
var files = Request.Form.Files;
long size = files.Sum(f => f.Length);
string shortTime = DateTime.Now.ToString("yyyy/MM/dd") + "/";
string filePhysicalPath = MapPath("~/Content" + shortTime); //文件路径 可以通过注入 IHostingEnvironment 服务对象来取得Web根目录和内容根目录的物理路径
if (!Directory.Exists(filePhysicalPath)) //判断上传文件夹是否存在,若不存在,则创建
{
Directory.CreateDirectory(filePhysicalPath); //创建文件夹
}
foreach (var file in files)
{
if (file.Length > 0)
{
var fileName =System.Guid.NewGuid().ToString() +Path.GetExtension(file.FileName);//文件名+文件后缀名
using (var stream = new FileStream(filePhysicalPath+fileName, FileMode.Create))
{
await file.CopyToAsync(stream);
}
}
}
return Ok(new { count = files.Count, size });
}