我有一个控制器方法,可以处理来自jquery脚本的文件上传。我使用以下代码Path.Combine(Server.MapPath("~/UserFiles/"), qqfile);
指定文件路径我想添加一个参数来指定文件的子文件夹,但我只能指定现有文件夹。
如果它不存在,是否有任何简单的方法可以在服务器上创建子文件夹?
这是我的控制器方法:
public ActionResult FileUpload(string qqfile)
{
var file = string.Empty;
try
{
var stream = Request.InputStream;
if (String.IsNullOrEmpty(Request["qqfile"]))
{
// IE
HttpPostedFileBase postedFile = Request.Files[0];
stream = postedFile.InputStream;
file = Path.Combine(Server.MapPath("~/UserFiles/"), System.IO.Path.GetFileName(Request.Files[0].FileName));
}
else
{
//Webkit, Mozilla
file = Path.Combine(Server.MapPath("~/UserFiles/"), qqfile);
}
var buffer = new byte[stream.Length];
stream.Read(buffer, 0, buffer.Length);
System.IO.File.WriteAllBytes(file, buffer);
}
catch (Exception ex)
{
return Json(new { success = false, message = ex.Message }, "application/json");
}
return Json(new { success = true }, "text/html");
}
答案 0 :(得分:5)
你试过这个吗?
string path = "~/UserFiles/subfolder/";
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
//todo
或者这应该有用
string folder= "subfolder";
var path= Server.MapPath("~/UserFiles/" + folder);
var directory = new DirectoryInfo(path);
if (directory.Exists == false)
{
directory.Create();
}
//todo