2

を使用して、写真をフォルダー (プロジェクトフォルダーにある) にアップロードしようとしていますasp:FileUpload

ボタンをクリックすると、次のエラーが表示されます。

SaveAs メソッドはルート化されたパスを必要とするように構成されており、パス 'localhost:49256/bilder' はルート化されていません。

これが私のコードビハインドです:

protected void ladda_Click(object sender, EventArgs e)
{
    string filename = filuppladdare.FileName;
    string description = desc.Text;

    if (filuppladdare.HasFile)
    {
        filuppladdare.PostedFile.SaveAs(\localhost:21212\pictures");
    }
}

私はパスを推測しただけです。それは何ですか?またはどうすれば入手できますか?

4

5 に答える 5

4

メソッドを使用してMapPath、フォルダーの物理パスを取得します。

filuppladdare.PostedFile.SaveAs(Server.MapPath("~/pictures"));

パス内の~は、アプリケーション ルートを表します。

于 2012-04-18T08:07:33.550 に答える
2

使用するパスは、Web サイトの URL ではなく、サーバー (または別のアクセス可能な FS パス) 上の物理パスを参照します。

URLから物理パスを取得したい場合は、使用する必要がありますServer.MapPath(yourUrl)

于 2012-04-18T08:08:37.903 に答える
0

1 つのオプションは、Server MapPath を使用することであり、フォルダーのアクセス許可を確認することが役立つ場合があります。

于 2012-04-18T08:12:58.680 に答える
0

これを試して

filuppladdare.PostedFile.SaveAs("~/Project name/.../pictures");
于 2012-04-18T08:09:40.850 に答える
0

現在のパスを取得するにはさまざまな方法があります。このリンクは、HttpContext のさまざまなプロパティを使用してパスを見つける方法を示しています。

あなたの例では、次を使用できます。

filuppladdare.PostedFile.SaveAs("~\pictures");

~、アプリケーションのルートから開始するように指示します。

Server.MapPathを使用することもできます

于 2012-04-18T08:11:24.483 に答える