如果文件路径不存在,请创建serverfolder



我有一个控制器方法,用于处理从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

相关内容

  • 没有找到相关文章

最新更新