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 に答える
0

パスの最後の部分を削除して、余​​分な「/」を保存します

そのはず

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

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

于 2013-07-30T10:37:42.243 に答える