web-dev-qa-db-ja.com

アップロードしたファイルをどのように保存しますか? c#mvc

イメージファイルをプロジェクトのフォルダーにアップロードしたいのですが、キャッチにエラーがあります:パス '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)
{
}

誰かが私が間違っていることを知っていますか?

ありがとうございました :)

5
user1921145

これを試して:

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

ファイル名が必要です

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

エラーは次のとおりです。

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

ディレクトリが存在するかどうかを確認しますが、ファイルが存在するかどうかを確認する必要があります。

File.Exists(....);
0
SynerCoder

パスの最後の部分を削除して、余​​分な「/」があることを確認します

そのはず

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

また、ファイル拡張子が設定されていません。

0
AntSpiteri