文件上传(表单,Ajax)、文件下载
文件上传:
表单方式:
MVC:
方法一、public ActionResult Upload2()
{
//获取要上传的文件名称及类型
var fils = HttpContext.Request.Files[0];
//文件名称分割成 名称和类型
var temp = fils.FileName.Split('.');
//获取类型
var extendName = temp[temp.Length - 1];
//设置储存路径
var path = HttpContext.Server.MapPath("~/Filters/");
//如果没有此路径
if (!Directory.Exists(path))
{
//创建路径
Directory.CreateDirectory(path);
}
//获取到时间格式的名称
var name = DateTime.Now.ToFileTime() + "." + extendName;
fils.SaveAs(Path.Combine(path, name));
return Content("上传成功");
}
{ var fileName = file.FileName;
var filePath = Server.MapPath(string.Format("~/{0}", "File"));
file.SaveAs(Path.Combine(filePath, fileName));
string sql = $"insert into Files values('{fileName}','**','{filePath}')";
int i= DBHelper.ExecuteNonQuery(sql); if (i>0)
{
//return Content("上传成功!");
Response.Write("");
}
else
{
Response.Write("");
} } form表单:
下载文件 Ajax方式: API:上传文件 控制器端
public class FileOperationController : ApiController
{
[HttpPost]
public FileResult UpLoad()
{
return help.UpLoad();
} } MVC的视图页: 客户端
< script >
function ff()
{
var formData = new FormData();
var file = document.getElementById("f1").files[0];
formData.append("fileInfo", file);
$.ajax({
url: "https://localhost:44370/api/FileOperation/UpLoad",
type: "POST",
data: formData,
contentType: false,//必须false才会自动加上正确的Content-Type
processData: false,//必须false才会避开jQuery对 formdata 的默认处理,XMLHttpRequest会对 formdata 进行正确的处理
success: function(data) {
if (data.Code < 0)
alert(data.Msg)
else
alert(data.Url)
},
error: function(data) {
alert("上传失败!");
}
});
} 文件下载:
(1)返回filestream
public FileStreamResult download() { string fileName = "aaa.txt";//客户端保存的文件名 string filePath = Server.MapPath("~/Document/123.txt");//路径 return File(new FileStream(filePath, FileMode.Open), "application/octet-stream",fileName);
}
其中://“text/plain”是文件MIME类型
(2)返回file
public FileResult download()
{
string filePath = Server.MapPath("~/Document/123.txt");//路径
return File(filePath, "text/plain", "welcome.txt"); //welcome.txt是客户端保存的名字
}