- PR -

[ASP.NET] WebClientのUploadFileメソッド

投稿者投稿内容
Takuya
会議室デビュー日: 2004/02/19
投稿数: 5
投稿日時: 2004-02-19 15:24
Takuya@といいます。ASP.NET(VB.NET)でWebアプリケーションの開発をしています。
いつも参考にさせて頂いています。

現在、ASP.NET(VB.NET)開発中です。
標題の件で不明な点があります。ご教示願いますでしょうか?

WebClientのUploadFileメソッドは、
ローカルPCにあるファイルをWebサーバにアップロードできるということなのでしょうか?

Dim responseArray As Byte() = myWebClient.UploadFile(URI, ファイルパス)

ファイルパスで、C:\test.txtとしても、このパスはWebサーバのローカルパスをあらわし
ているのですよね?

皆様、回答 何卒宜しくお願いします。
NAL-6295
ぬし
会議室デビュー日: 2003/01/26
投稿数: 966
お住まい・勤務地: 東京
投稿日時: 2004-02-19 15:30
NAL-6295です。

#試せばいいじゃん。

ってのはおいといて、

Webサーバのローカルパスではなく、クライアントPCのローカルパスです。
ゆうじゅん
ぬし
会議室デビュー日: 2004/01/16
投稿数: 347
投稿日時: 2004-02-19 15:51
ちなみにWebアプリケーションで動かした場合
WebClientはWebサーバのことを指していますのでご注意を
Takuya
会議室デビュー日: 2004/02/19
投稿数: 5
投稿日時: 2004-02-19 16:15
Takuyaです。返答ありがとうございます。
#何度も試してみたんですが、やっぱりこういうことですか?

Dim responseArray As Byte() = myWebClient.UploadFile(URI, ファイルパス)

・ASP.NETの場合は、
→ファイルパス=Webサーバの(ローカル)パス

・Windowsの場合は、
→ファイルパス=ローカルPCのパス

となるということですか?
知りたいのは、ASP.NETの場合はローカルファイルはUploadできるか否か
ということですが、FileFieldコントロールを使わないとアップロードは無理なんでしょうか?
ゆうじゅん
ぬし
会議室デビュー日: 2004/01/16
投稿数: 347
投稿日時: 2004-02-19 16:31
引用:

Dim responseArray As Byte() = myWebClient.UploadFile(URI, ファイルパス)

・ASP.NETの場合は、
→ファイルパス=Webサーバの(ローカル)パス

・Windowsの場合は、
→ファイルパス=ローカルPCのパス

となるということですか?
知りたいのは、ASP.NETの場合はローカルファイルはUploadできるか否か
ということですが、FileFieldコントロールを使わないとアップロードは無理なんでしょうか?




UploadFileについてはおっしゃる通りです。
アップロードについてもおそらくFileFieldコントロールを使用しないとだめだと思います。

UploadFileでやりたかったことをやるのであれば
・FileFieldコントロールを画面外に配置
・FileFieldコントロールを「サーバーコントロールとして実行」に設定
・System.Web.UI.HtmlControls.HtmlInputFileクラスのPostedFile.SaveAsメソッドをつかって送信

でなんとかなるかもしれません。
なちゃ
ぬし
会議室デビュー日: 2003/06/11
投稿数: 872
投稿日時: 2004-02-19 17:13
引用:

Takuyaさんの書き込み (2004-02-19 16:15) より:
・ASP.NETの場合は、
→ファイルパス=Webサーバの(ローカル)パス

・Windowsの場合は、
→ファイルパス=ローカルPCのパス

となるということですか?
知りたいのは、ASP.NETの場合はローカルファイルはUploadできるか否か
ということですが、FileFieldコントロールを使わないとアップロードは無理なんでしょうか?


なーんか微妙に認識がずれてる気がしないでもないですが…
ASP.NETでローカルファイルをアップロードっていうのは、具体的にどういうことをさしてますか?

a)IE→ASP.NET(Webサーバ)
b)WindowsForm等の自作アプリケーション→ASP.NET(Webサーバ)
c)ASP.NET(Webサーバ)→ASP.NET(同じまたは別のWebサーバ)
UploadFileを使う話なので、b)かc)ですよね?

ローカルファイルなのかWebサーバのファイルなのかというのは単純に、コード上でWebClient.UploadFileを使っているプログラムの、動作している環境のローカルファイルです。
UploadFileをASP.NETのサーバプログラムで使えばサーバ側ですし、Windowsアプリケーションから使えば、そのアプリケーションが動いているマシンのローカルファイルです。

c)の、ASP.NET(Webサーバ)→ASP.NET(同じまたは別のWebサーバ)というのはあまり使う場面は多くないと思いますが、そういう意図であってるんでしょうか、どうなんでしょう?
NAL-6295
ぬし
会議室デビュー日: 2003/01/26
投稿数: 966
お住まい・勤務地: 東京
投稿日時: 2004-02-19 17:14
引用:

NAL-6295さんの書き込み (2004-02-19 15:30) より:
NAL-6295です。

#試せばいいじゃん。

ってのはおいといて、

Webサーバのローカルパスではなく、クライアントPCのローカルパスです。



言葉足らずというか、誤解される書き方でした。
正しくは、

コードが実行されているPCのローカルパスです。

で、

WEBフォーム=サーバPC、Windowsフォーム=クライアントPC

という事でした。

Takuya
会議室デビュー日: 2004/02/19
投稿数: 5
投稿日時: 2004-02-19 17:16
Takuyaです。返答ありがとうございます。

>UploadFileでやりたかったことをやるのであれば
>・FileFieldコントロールを画面外に配置
>・FileFieldコントロールを「サーバーコントロールとして実行」に設定
>・System.Web.UI.HtmlControls.HtmlInputFileクラスのPostedFile.SaveAsメソッドをつかって送信

Webサーバ側にアップロードするクライアント側のファイルをどのように
指定したらよいのでしょうか?
やはり、ユーザにファイルを指定(ファイル参照)してもらうしか方法は
ないように思われるのですが。

教えて頂けないでしょうか?宜しくお願いします。

スキルアップ/キャリアアップ(JOB@IT)