从 Ajax 保存到子目录的文件上传
File Upload from Ajax Saving to Subdirectory
我正在尝试使用 ASP MVC 获取从 ajax 请求上传的文件,以保存在我的项目文档文件夹中的子文件夹下。比如说我从请求对象中获取文件,对于每组文件,我想在文档下创建一个单独的文件夹,每次都用于存储文件。我已经尝试了下面的代码,但它抛出了一个异常,说明找不到路径的一部分。我假设它是我试图在其中存储文件的子目录,并且我尝试了各种组合,但无济于事。任何帮助将不胜感激,因为我整个上午都在努力解决这个问题。
我的 rootPath 在我的配置文件中存储为 C:VianetVianet\Documents
if (Request.Files.Count > 0)
{
var rootPath = ConfigurationManager.AppSettings["DocumentsPath"];
if (!(Directory.Exists(rootPath)))
{
Directory.CreateDirectory(rootPath);
}
var claimPath = Path.Combine(rootPath, claimNumber.ToString());
Directory.CreateDirectory(claimPath);
try
{
// Get all files from Request object
HttpFileCollectionBase files = Request.Files;
for (int i = 0; i < files.Count; i++)
{
HttpPostedFileBase file = files[i];
string fname;
fname = file.FileName;
var filePath = Path.Combine(claimPath, file.FileName);
fname = Path.Combine(filePath, fname);
file.SaveAs(fname);
}
catch (Exception ex)
{
}
}
尝试添加 Directory.CreateDirectory(filePath);
之后
var filePath = Path.Combine(claimPath, file.FileName);
最后创建的目录是:\Documents\claimNumber
,但您正试图将文件保存到:\Documents\claimNumber\fileName\
我正在尝试使用 ASP MVC 获取从 ajax 请求上传的文件,以保存在我的项目文档文件夹中的子文件夹下。比如说我从请求对象中获取文件,对于每组文件,我想在文档下创建一个单独的文件夹,每次都用于存储文件。我已经尝试了下面的代码,但它抛出了一个异常,说明找不到路径的一部分。我假设它是我试图在其中存储文件的子目录,并且我尝试了各种组合,但无济于事。任何帮助将不胜感激,因为我整个上午都在努力解决这个问题。
我的 rootPath 在我的配置文件中存储为 C:VianetVianet\Documents
if (Request.Files.Count > 0)
{
var rootPath = ConfigurationManager.AppSettings["DocumentsPath"];
if (!(Directory.Exists(rootPath)))
{
Directory.CreateDirectory(rootPath);
}
var claimPath = Path.Combine(rootPath, claimNumber.ToString());
Directory.CreateDirectory(claimPath);
try
{
// Get all files from Request object
HttpFileCollectionBase files = Request.Files;
for (int i = 0; i < files.Count; i++)
{
HttpPostedFileBase file = files[i];
string fname;
fname = file.FileName;
var filePath = Path.Combine(claimPath, file.FileName);
fname = Path.Combine(filePath, fname);
file.SaveAs(fname);
}
catch (Exception ex)
{
}
}
尝试添加 Directory.CreateDirectory(filePath);
var filePath = Path.Combine(claimPath, file.FileName);
最后创建的目录是:\Documents\claimNumber
,但您正试图将文件保存到:\Documents\claimNumber\fileName\