C# MVC 文件上传后保存并返回文件路径
using System;
using System.IO;
using System.Web;
using System.Web.Http;
namespace Sds.WebApp.ApiControllers
{
[CustomAuthorizeApi]
public class UploadController : SdsApiController
{
[HttpPost]
public string Upload()
{
string TimePath = HttpContext.Current.Server.MapPath("~/Upload/");
try
{
var files = HttpContext.Current.Request.Files;
if (files.Count < 1)
return "formatErr";
HttpPostedFile file = HttpContext.Current.Request.Files[0];
string name = Guid.NewGuid().ToString();
string ext = Path.GetExtension(file.FileName).ToLower();
string fileName = name + Path.GetExtension(file.FileName);
string responseUrl = string.Empty;
if (ext.Equals(".doc") || ext.Equals(".docx") || ext.Equals(".xls") || ext.Equals(".xlsx") || ext.Equals(".ppt") || ext.Equals(".ppttx") ||
ext.Equals(".txt") || ext.Equals(".wpd") || ext.Equals(".pdf") || ext.Equals(".rtf"))
{
TimePath += "Files/";
responseUrl = "/Upload/Files/" + fileName;
}
else if (ext.Equals(".jpg") || ext.Equals(".png") || ext.Equals(".bmp") || ext.Equals(".gif"))
{
TimePath += "Images/";
responseUrl = "/Upload/Images/" + fileName;
}
else if (ext.Equals(".mp4") || ext.Equals(".mpeg") || ext.Equals(".3gp") || ext.Equals(".avi"))
{
TimePath += "Videos/";
responseUrl = "/Upload/Videos/" + fileName;
}
else {
return "formatErr";
}
if (!Directory.Exists(TimePath))
{
Directory.CreateDirectory(TimePath);
}
file.SaveAs(TimePath + fileName);
return responseUrl;
}
catch (Exception e)
{
var aa = e.Message;
return "formatErr";
}
}
}
}