1

私はソリューション「ソリューション」と2つのプロジェクトを持っています:

  • solution.WebUI (ここで、ユーザーは「~/uploads」などのフォルダーにファイルをアップロードします
  • solution.WebApi (ここではユーザー ファイルにアクセスする必要があります)

Web API プロジェクトでは、次のようなファイルにアクセスします。

    public HttpResponseMessage GetPdfPage()
    {
        HttpResponseMessage responce =  new HttpResponseMessage();
        responce.Content = new StreamContent(new FileStream(HttpContext.Current.Server.MapPath("~/somefile.pdf"), FileMode.Open, FileAccess.Read));
        responce.Content.Headers.ContentType = new MediaTypeHeaderValue("application/pdf");

        return responce;
    }

ファイルへのパスを変更するにはどうすればよいですか?

4

2 に答える 2

1

共有フォルダーの方が優れたソリューションだと思います http://support.microsoft.com/kb/324267

于 2013-03-18T16:45:30.863 に答える
0

同じソリューションの BLL プロジェクトから別のプロジェクト (メイン) の Upload フォルダーにアクセスする必要があるという同様の問題にも直面しました。そのために、アップロード フォルダーに絶対パス (ハードコードされていない) を使用しました。以下のコードもあなたのために働くべきだと思います。

public HttpResponseMessage GetPdfPage()
    {
        HttpResponseMessage responce =  new HttpResponseMessage();
        string basePath = System.AppDomain.CurrentDomain.BaseDirectory;
        responce.Content = new StreamContent(new FileStream(HttpContext.Current.Server.MapPath(basePath +"somefile.pdf"), FileMode.Open, FileAccess.Read));
        responce.Content.Headers.ContentType = new MediaTypeHeaderValue("application/pdf");

        return responce;
    }
于 2016-12-28T05:29:46.933 に答える