MVC AJAX方法 文件上传下载
前端页面
<input type="file" id="f1" />
<input type="button" value="上传文件" onclick="ff()" />
<a href="~/Default/download">下载文件</a>
<a href="~/Default/GetFileFromDisk">Click to get file</a>
<script>
function ff() {
var formData = new FormData();
var file = document.getElementById("f1").files[0];
formData.append("fileInfo", file);
$.ajax({
url: "/Default/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)
//else
},
error: function (data) {
alert("上传失败!");
}
});
}
</script>
控制器方法
namespace WebApplication1.Controllers
{
public class DefaultController : Controller
{
APIFileHelp help = new APIFileHelp();
// GET: Default
public ActionResult Index()
{
return View();
}
[HttpPost]
public string UpLoad()
{
return help.UpLoad();
}
public FilePathResult GetFileFromDisk()
{
string path = AppDomain.CurrentDomain.BaseDirectory + "Upload/";
string fileName = "新建文本文档.txt";
return File(path + fileName, "text/plain", "test.txt");
}
}
}
文件帮助类
namespace WebApplication1.Models
{
public class APIFileHelp
{
public string[] ExtentsfileName = new string[] { ".doc",".txt", ".xls", ".png", ".jpg" };
public string UrlPath = "/Upload/";
/// <summary>
///响应对象 ,使用前先赋值
/// </summary>
public HttpResponse Response = HttpContext.Current.Response;
public HttpRequest Request = HttpContext.Current.Request;
public string zhi { get; set; }
public string UpLoad()
{
if (Request.Files.Count > 0)
{
var file = Request.Files[0];
var extenfilename = Path.GetExtension(file.FileName);
//判断 路径是否存在
string path = HttpContext.Current.Server.MapPath(UrlPath);
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
if (ExtentsfileName.Contains(extenfilename.ToLower()))
{
string urlfile = UrlPath + DateTime.Now.ToFileTime() + extenfilename;
string filepath = HttpContext.Current.Server.MapPath(urlfile);
file.SaveAs(filepath);
return zhi=urlfile;
}
else
{
return zhi = "上传失败";
}
}
else
{
return zhi = "上传失败";
}
}
}
}

浙公网安备 33010602011771号