2017-10-11 6 views
-2

File.Copy( "C:\ somepath \ file.bmp"、 "\ xxx \ data \ file.bmp")を使用して、クライアントからネットワークドライブにファイルをコピーしようとしています。 。ローカルでのデバッグはうまくいきましたが、サーバではうまく動作しませんでした。 File.copyはAPIサーバのCドライブを見て、ファイルを見つけることができないと思います。どうすればこの問題を解決できますか?これで私を助けてください...クライアント内のファイルを別のドライブに移動する

+4

あなたが訪問したウェブサイトがコンピュータからファイルをコピーできる世界を想像してください。あなたが探しているのは、ユーザがファイルをサーバにアップロードするための ''です。 – David

+0

はい私はを使用してクライアントからのパスを取得しています...しかしAPIサーバーでは、File.Copyが問題の原因となっています... File.Copyファイルを見つけることができませんでした。 .. –

+0

'File.Copy' *はファイルを探していますか?あなたが使っている完全なコードを表示してください。クライアントのファイルシステムにアクセスしようとしている場合、明らかに動作しません。 – David

答えて

0

WebアプリケーションとしてWeb APIを考えてみましょう。このように、特定のアイデンティティの下ですべてを実行することを意味するアプリケーションプールを持つため、アイデンティティの特定の権利によってバインドされていることを意味します。

第2に、Webアプリケーションであるため、自分以外の場所にアクセスすることはできません。つまり、ユーザーのドライブ上にあるものにアクセスすることはできません。それは、誰にとっても大きなセキュリティ上の欠陥を引き起こすため、良いことです。

第3に、このようなことをしたら、本当に仮想パスで作業したいと思っています。たとえば、App_Dataの下にファイルを置くことができますが、どこからどこにコピーしているのかを覚えておく必要があります。

アプリケーションがどこにあるかによってアプリケーションをローカルで動作させることはできますが、サーバーに展開するとパスは異なります。なぜ仮想パスで作業したいのか、あなたが構築しているもののセキュリティの意味。

たとえば、ファイルをアップロードしようとすると、アプリケーションが置かれていないフォルダの下の場所にそのファイルを置くことができます。

関連する問題