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 :)

回答1:

Try this:

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


回答2:

You need filename

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


回答3:

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:

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.