5

我想将图像文件上传到项目的文件夹,但我的捕获中有一个错误:找不到路径“C:\project\uploads\logotipos\11111\”的一部分。

我做错了什么?我想将我的客户上传的图像保存在那个文件夹中......那个文件夹存在......啊,如果我为 folder_exists3 设置一个断点,它显示了一个真正的价值!

我的代码是:

try
{
    var fileName = dados.cod_cliente;
    bool folder_exists = Directory.Exists(Server.MapPath("~/uploads"));
    if(!folder_exists)
        Directory.CreateDirectory(Server.MapPath("~/uploads"));
    bool folder_exists2 = Directory.Exists(Server.MapPath("~/uploads/logo"));
    if(!folder_exists2)
        Directory.CreateDirectory(Server.MapPath("~/uploads/logo"));
    bool folder_exists3 = Directory.Exists(Server.MapPath("~/uploads/logo/" + fileName));
    if(!folder_exists3)
        Directory.CreateDirectory(Server.MapPath("~/uploads/logo/"+fileName));

    file.SaveAs(Server.MapPath("~/uploads/logo/" + fileName+"/"));
}
catch(Exception e)
{
}

有人知道我做错了什么吗?

谢谢 :)

4

4 回答 4

23

尝试这个:

string targetFolder = HttpContext.Current.Server.MapPath("~/uploads/logo");
string targetPath = Path.Combine(targetFolder, yourFileName);
file.SaveAs(targetPath);
于 2013-07-30T12:40:29.623 回答
1

您的错误如下:

bool folder_exists3 = Directory.Exists(Server.MapPath("~/uploads/logo/" + fileName));
if(!folder_exists3)
    Directory.CreateDirectory(Server.MapPath("~/uploads/logo/"+fileName));

您检查目录是否存在,但您应该检查文件是否存在:

File.Exists(....);
于 2013-07-30T10:37:12.437 回答
1

你需要文件名

file.SaveAs(Server.MapPath("~/uploads/logo/" + fileName+"/" + your_image_fillename));
于 2013-07-30T10:38:05.800 回答
0

删除路径的最后一部分以节省您额外的“/”

它应该是

file.SaveAs(Server.MapPath("~/uploads/logo/" + fileName);

此外,您没有设置文件扩展名。

于 2013-07-30T10:37:42.243 回答