2012-01-18 26 views
0

私は2つのWebアプリケーションを別のサーバーでホストしています。 1つはメインアプリケーションであり、もう1つはブランチアプリケーションです。 ブランチアプリケーションでは、ユーザーはファイルをアップロードしますが、アップロードされたすべてのファイルをメインのアプリケーション仮想ディレクトリに保存します。ファイルを別の仮想ディレクトリにアップロード

私たちはファイルをアップロードしている間にメインのアプリケーションの仮想ディレクトリのパスを入れます。しかし、 "無効なディレクトリ"のようなエラーメッセージが表示され、アップロードできません。 あるアプリケーションから別のアプリケーションに直接ファイルをアップロードする方法はありますか? asp.netとVisual Studio 2008で通常のHTMLアップロードコントロールを使用しています。

Code Sample : 
main application virtual directory "http://10.10.10.1/mainapp/uploadedfiles/" 
branch application virtual directory "http://10.10.10.2/branchapp/" 

HttpPostedFile postedFile; 
string saveFile = Path.Combine("http://10.10.10.1/mainapp/uploadedfiles/", "File1.pdf"); 
postedFile.SaveAs(saveFile); 

私は正しい方法を導いてください、本当にありがとうございます。

ありがとうございました。

よろしく、

チョン

答えて

1

私は2つのアプリケーションが異なるサーバーにあるためuは、ディレクトリを共有し、アプリの両方がアクセスできることを確認することができ、ディレクトリ・パスは、多分ちょうど好きだと思う:\サーバAを\ Files \、このディレクトリのURLはhttp://localhost/filesです。あなたが許可を持っている場合、相対パスで他のサーバーにファイルを保存することができます。

2

FileUploadコントロールでは、FileUpload.SaveAs(path)メソッドは仮想パスではなく物理パスを使用します。したがって、仮想パスがある場合は、Server.MapPathメソッドを使用して物理パスに変換する必要があります。あなたの例を使用して、あなたにコードの最後の行を変更する場合があります

postedFile.SaveAs(Server.MapPathの(SAVEFILE))

また、あなたは必ずアカウントASPいることを確認する必要があります。 Netは、物理ディレクトリに対してACL書き込み権限を持っています。