我有一个控制器方法,用于处理从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");
}
你试过这个吗?
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