0

我使用 AjaxFileUpload 上传多个图像文件。现在我想将上传的图像存储在根文件夹>子文件夹中。

根文件夹在用户名下。根文件夹是通过获取已登录用户的会话来动态创建的,如下所示:

string username = Session["username"].ToString();

我能够创建此文件夹并将图像保存在其中。但我想将其保存在子文件夹中。

子文件夹也是动态创建的,但这次我必须从数据库中获取值(id)并用该 id 名称命名文件夹。(这样我可以参考数据库)

我知道如何使用 Server.MapPath(); 创建一个新文件夹;这是简要的代码

using System.IO
if (Directory.Exists(Server.MapPath(uploadPath))) return;
else Directory.CreateDirectory(Server.MapPath(uploadPath));

其中uploadPath 是我要动态创建的文件夹名称。

但是如何在我的 Server.MapPath() 中也包含子文件夹,以便将我的路径设置为 rootfolder/subfolder ?

使问题易于理解的小例子。我是卖家。我在网上发布了 4 个广告。现在,当我发布我的第 5 个广告时,我想包含许多图片。这些图像应保存在文件夹中

卖家/5/imagename.jpg。(其中 Seller 是用户名(主文件夹),5 是数据库中的 advertID 和子文件夹的名称)

我该怎么做呢?请帮忙。我正在使用 asp.net c#

4

2 回答 2

0

User Path.Combine 添加您的根目录和用户 ID:

   var userPath = Path.Combine(uploadPath,userID) 

这是创建所需内容的最安全方法。该Directory.CreateDirectory方法将根据需要创建所有子文件夹:

 var userPath = Path.Combine(uploadPath,userID) 
if (Directory.Exists(Server.MapPath(userPath))) return;
else Directory.CreateDirectory(Server.MapPath(userPath));
于 2014-04-02T18:22:20.993 回答
0

据我所知,你不能做一个语句来创建文件夹和子文件夹,因为你需要先创建文件夹。

你有你需要的所有代码,你只需要重复它。检查主文件夹(用户名)是否存在。如果没有创建它,如果有,请检查子文件夹是否存在。如果没有,请创建它。

只要通过这个逻辑,你就会被设置。

于 2014-01-16T14:16:20.190 回答