2016-04-02 32 views
0

写真を外部ライブラリにアップロードしています。このライブラリのAPIには、アップロードするファイルへのパスが必要です。ここでHttpPostedFileBaseからファイルパスを取得する方法

私のコードです:

public ActionResult UploadImageToCloudinary(HttpPostedFileBase file, string group, string filter) 
    { 

     if (file != null && file.ContentLength > 0) 
     { 
      // extract only the fielname 
      var fileName = Path.GetFileName(file.FileName); 
      if (fileName != null) 
      { 
       // get path including filename 
       var path = Path.Combine(Server.MapPath("~/App_Data/uploads"), fileName); 

       // other unimportant logic 

     } 


     return Content("Fail"); 
    } 

私はこれをやったが、明らかにそれはそれはD:\Visual Studio Projects\Impola\Somefilder1\Somfolder2\App_Data\uploads\cara.jpg

を返し、実際のファイルパスがあるD:\MyProjects\Images\cara.jpgある"~/App_Data/uploads" に応じてそれを見つけることができません私が必要とするもの。

実際のファイルパスを取得するにはどうすればよいですか?

+0

VSからアプリを実行しているため、そのパスが表示されます。パブリッシュすると、別のパスが得られます。実際のファイルパスの意味がわからない場合は、D:\ MyProjects \ Images \ cara.jpg_ –

答えて

0

単純に、必要な特定のフォルダにパスを変更することができます。エラーを避けるには、アプリケーションに「Images」フォルダを作成する必要があります。プロダクションでは、アプリケーションへの書き込み権限を "Images"フォルダに設定してください。

var path = Path.Combine(Server.MapPath("~/Images/"), fileName); 
関連する問題