Lor*_*ion 0 c# asp.net-mvc file
我有一个控制器方法来处理来自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");
}
Run Code Online (Sandbox Code Playgroud)
你试过这个吗?
string path = "~/UserFiles/subfolder/";
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
//todo
Run Code Online (Sandbox Code Playgroud)
或者这应该工作
string folder= "subfolder";
var path= Server.MapPath("~/UserFiles/" + folder);
var directory = new DirectoryInfo(path);
if (directory.Exists == false)
{
directory.Create();
}
//todo
Run Code Online (Sandbox Code Playgroud)