一、前端代码
<html>
<body>
<title>导入文件</title>
</body>
<head>
<form method="post" enctype="multipart/form-data" id="form">
名称:<input type="file" name="name" id="name" />
<input type="button" id="saves" value="提交" />
</form>
<script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.js"></script>
<script>
$("#saves").on("click", function (e) {
var form =document.getElementById("form");
var data = new FormData(form);
$.ajax({
url: "/Upload",
type: "post",
dataType: "json",
contentType: false,
processData: false,
headers: { 'X-Custom-Source': 'browser', "Authorization":"Bearer token"},
data: data,
success: function (res) {
// 导入成功
}
});
});
</script>
</head>
</html>
二、后端代码
/// <summary>
/// 上传文件到服务器
/// </summary>
/// <param name="files">文件</param>
/// <returns></returns>
[HttpPost]
public JsonResult Upload(IFormCollection files)
{
try
{
// 服务器将要存储文件的路径
var Folder = AppDomain.CurrentDomain.BaseDirectory + "/wwwroot/Upload/";
if (Directory.Exists(Folder) == false)//如果不存在就创建file文件夹
{
Directory.CreateDirectory(Folder);
}
FormFileCollection fileCollection = (FormFileCollection)files.Files;
foreach (IFormFile file in fileCollection)
{
StreamReader reader = new StreamReader(file.OpenReadStream());
String content = reader.ReadToEnd();
String name = file.FileName; // 获取文件名
string pathName = Path.GetExtension(name); // 获取后缀名
if (pathName != ".xlsx")
{
return Json(new
{
Message = "不支持该格式",
Success = false
});
}
String filename = Folder + Guid.NewGuid().ToString().Replace("-", "") + pathName; // 生成新的文件名,唯一不重复
if (System.IO.File.Exists(filename))
{
System.IO.File.Delete(filename);
}
using (FileStream fs = System.IO.File.Create(filename))
{
// 复制文件
file.CopyTo(fs);
// 清空缓冲区数据
fs.Flush();
}
}
return Json(new
{
Message = "成功",
Success = true
});
}
catch (Exception ex)
{
return Json(new
{
Message = ex.Message,
Success = false
});
}
}