2012-01-27 7 views
0

私は、Webアプリケーションのルートにフォルダにアップロードされたファイルのアップロードを持っていたつまり、私は保存パス、仮想ディレクトリ、および静的ロケーション

string savePath = @"~/documentation/" 

string filename = Path.GetFileName(FileUploadControl.FileName); 
FileUploadControl.SaveAs(Server.MapPath(savePath) + filename); 

を持っていたし、それは、WebAppのにファイルをアップロード、うまく働い/ documentation/filename.abc

問題は、ドキュメントの場所を変更して、開発から運用にプッシュするときにそのフォルダを移動する必要がないということです。だから私は、web.configファイル

を次のようでした:コードで

<appSettings> 
    <add key="DocumentationLocation" value="C:\Documentation\" /> 
</appSettings> 

string savePath = ConfigurationSettings.AppSettings["DocumentationLocation"]; 

string filename = Path.GetFileName(FileUploadControl.FileName); 
FileUploadControl.SaveAs(Server.MapPath(savePath) + filename); 

私は、これはウェブで指定したフォルダにファイルを保存し、同じように働くだろう考え出しました。 config。

「C:\ TM_Documentation \」は有効な仮想パスではありません、私は今、ドキュメントをアップロードしようとすると、

はしかし、私が言うこと、エラーが発生します。

私はそれを修正してウェブアプリケーションディレクトリの外にファイルを保存できるように間違っていますか?ありがとう。

答えて

1

Server.MapPath()を削除すると、完全なパスを既に指定しているため、パスをマップするためのサーバは必要ありません。

+0

完璧を試してみて、そのような「〜/ドキュメント/」

として相対パスを持っている場合にのみ必要です。ありがとうございました。私はそれがシステムが私にできるようになると答えるとマークします。 (面白いことに、私は2日前にマッパスのことを調べて、今はそれが不必要であることを知るためだけに作業していました。 – Josh

0

あなたのパスが "C:\ Documentation \"の場合、Server.MapPathは必要ありません。 Server.MapPathは、あなたが設定この

FileUploadControl.SaveAs(savePath + filename); 
関連する問題