如何保存上传的文件? c#mvc

时间:2013-07-30 10:33:52

标签: c# asp.net-mvc image file-upload

我想将图片文件上传到项目的文件夹但是我的catch中有错误: 找不到路径'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 个答案:

答案 0 :(得分:21)

试试这个:

string targetFolder = HttpContext.Current.Server.MapPath("~/uploads/logo");
string targetPath = Path.Combine(targetFolder, yourFileName);
file.SaveAs(targetPath);

答案 1 :(得分:1)

你需要文件名

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

答案 2 :(得分:0)

您的错误如下:

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

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

File.Exists(....);

答案 3 :(得分:0)

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

应该是

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

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