0

わかりました、いくつかのファイルをアップロードするためにインターネットでこれを見つけました。

if (FileUpload1.HasFile)
{
    //create the path to save the file to
    string fileName = Path.Combine(@"E:\Project\Folders", FileUpload1.FileName);
    //save the file to our local path
    FileUpload1.SaveAs(fileName);
}

この

//check to make sure a file is selected
if (FileUpload1.HasFile)
{
    //create the path to save the file to
    string fileName = Path.Combine(Server.MapPath("~/Files"), FileUpload1.FileName);
    //save the file to our local path
    FileUpload1.SaveAs(fileName);
}

違いは何ですか、どちらを使用しますか?私は混乱しました。ところで、ファイル パスをデータベースに保存できて、次にそのファイルを削除または表示したい場合、どうすればそれを取得できますか? たとえば、最初にデータベースにレコードを追加し、.doc ファイル/Excel ファイルをアップロードした後、次にそのレコードを編集するときに、アップロードされたファイルを取得して UI に表示したいとします。ありがとう。

4

3 に答える 3

1

2番目のパスを使用すると、相対パスまたは仮想パスが実際のパス自体に変換されます。.u db からパスを取得し、それを使用して、保存しているのと同じ方法でパスを解決し、それを操作して削除などを行い、url="~/Files/yourfilename" yourfilefromdb -u db から取得する必要があります。

string filepath = Path.Combine(Server.MapPath("~/Files"), yourfilefromdb);
File.Delete(filepath);

for showing
if it accessible directly u can just write url="~/Files/yourfilefromdb"
于 2013-05-16T07:23:48.033 に答える
0
//if you already know your folder is: E:\ABC\A then you do not need to use Server.MapPath, this last one is needed if you only have a relative virtual path like ~/ABC/A and you want to know the real path in the disk...

    if (FileUpload1.HasFile)
    {
        string fileName = Path.Combine(@"E:\Project\Folders", FileUpload1.FileName);// they know the right path so .they using directly  
        FileUpload1.SaveAs(fileName);
    }

    if (FileUpload1.HasFile)
    {
        string fileName = Path.Combine(Server.MapPath("~/Files"), FileUpload1.FileName);// i don't know path is correct or not so they using Server.MapPath. . .
        FileUpload1.SaveAs(fileName);
    }
于 2013-05-16T08:12:07.777 に答える
0

投稿された 2 つのコード ブロックの唯一の違いは、ファイル パスの指定にあります。

ケース 1 では、ファイルを保存するために静的な場所が指定されています。ファイルを保存する場所が本番環境で異なる場合、問題が発生する可能性があります。その場合、再構築が必要になります。

一方、ケース 2 では、場所は相対パスを使用して指定されます。そのため、ファイルは常に「/Files」の場所に保存されます。

于 2013-05-16T07:16:11.610 に答える