How save uploaded file? c# mvc

2019-02-05 07:35发布

I want upload an image file to project's folder but I have an error in my catch: Could not find a part of the path 'C:\project\uploads\logotipos\11111\'.

What am I do wrong? I want save that image uploaded by my client in that folder... that folder exists... ah if I put a breakpoint for folder_exists3 that shows me a true value!

My code is:

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)
{
}

Someone knows what I'm do wrong?

Thank you :)

4条回答
男人必须洒脱
2楼-- · 2019-02-05 07:55

Remove the last part of the path to save you have an extra "/"

It should be

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

Also you do not have a file extension set.

查看更多
闹够了就滚
3楼-- · 2019-02-05 07:56

Your error is the following:

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

You check if a directory exists, but you should check if the file exists:

File.Exists(....);
查看更多
我只想做你的唯一
4楼-- · 2019-02-05 07:57

Try this:

string targetFolder = HttpContext.Current.Server.MapPath("~/uploads/logo");
string targetPath = Path.Combine(targetFolder, yourFileName);
file.SaveAs(targetPath);
查看更多
Explosion°爆炸
5楼-- · 2019-02-05 07:59

You need filename

file.SaveAs(Server.MapPath("~/uploads/logo/" + fileName+"/" + your_image_fillename));
查看更多
登录 后发表回答