一回も披露したことのない豆知識

「とほほのWWW入門」にある、wwwupl2 を使ってブラウザからWWWサーバへ
ファイルをアップロードしています。
http://tohoho.wakusei.ne.jp/how2/tec1.htm#upload

VB からこの CGI へ命令(?)を渡し、ユーザには VB の画面だけを表示させておいて、
裏で CGI によるファイルのアップロードをさせることはできるのでしょうか?
つまり、ファイルを指定して送信ボタンを押すという動作を自動化+非表示にさせたいのです。

FTP を使えば解決するのですが、FTPアカウントは 1つしか無い為、
VB 中にアカウント情報を記述するのが怖いのです。
開発環境はVB6、サーバはレンタルサーバです。
よろしくお願い致します。

A 回答 (7件)

ブラウザを使用したアップロードは、httpのputです。



なのでVBで実現可能です。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
調べてみましたが、どのようにすればいいのかわかりませんでした。
具体的なコードややり方があるとありがたいのですが、お教え頂けないでしょうか?

お礼日時:2004/04/23 14:51

後は動くサンプルを見つければ解決でしょう。


http://www.google.com/search?hl=ja&q=VB+HTTP+POS …

basp21を使うのが簡単そう。

参考URL:http://www.google.com/search?q=VB+HTTP+POST+%22m …
    • good
    • 0
この回答へのお礼

お教え頂いたbasp21を中心に調べていたところ、BFup ActiveX コントロールを使うことによりアップロード出来ました!
http://www.hi-ho.ne.jp/babaq/bfup.html

皆様のおかげで解決しました。
ありがとうございました。

お礼日時:2004/05/06 15:27

>の2.受信データの構造にあるバイナリデータを送る


>場合のデータをCGIに送ってあげれば
>(つまり、回答No.2補足のコードのPostDataに代入)
>よいのではと考えているのですが、いかがでしょうか?

よさげですけど、まず確認事項としてPOSTのデータがcgiで受信できるかを確認するのが先かと。

form-dataではない、単純なデータをPOSTしてcgiでデータが受け取れているかを確認してみてください。

この回答への補足

ご回答ありがとうございます。
単純なデータを行ごとに処理をしてVBからCGIへPOSTしてみたところ、無事に受け取れました。
通常のhtmlと同じ挙動です。

後はバイナリファイルをデコードできれば出来そうな気がしたので調べてみましたが、いくら調べても見つかりませんでした。
皆様のおかげで着実に進んでいます。
もう少しお付き合い下さい。

補足日時:2004/04/27 21:24
    • good
    • 0

aspじゃダメなんでしょうか?



レンタルサーバーだとダメかな?

参考URL:http://www.dolphinnetservice.ne.jp/AcrobatASP/4. …
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
現在借りているレンタルサーバはASPは利用できないのです。
他に方法はありませんでしょうか?

お礼日時:2004/04/27 10:38

putじゃなくてpostでしたね。

すみません。

WebBrowserコントロールを使った.NETのサンプルですけど、ほとんどVB6と一緒です。

http://support.microsoft.com/default.aspx?scid=k …

#動作は未確認です。

参考URL:http://support.microsoft.com/default.aspx?scid=k …

この回答への補足

ご回答ありがとうございます。
こちらもいろいろ試してみましたが、アップロードが出来ませんでした。

VBからCGIを動かすところまではうまく行っているので
http://www.hk.airnet.ne.jp/~ahero/cgi/cgiex11.html
の2.受信データの構造にあるバイナリデータを送る場合のデータをCGIに送ってあげれば(つまり、回答No.2補足のコードのPostDataに代入)よいのではと考えているのですが、いかがでしょうか?

この方法はそもそもコードの書き方がわかりません。
もしお分かりになりましたらお教えいただけないでしょうか?

補足日時:2004/04/27 10:25
    • good
    • 0

HTTPのPUTなら簡単でしょうけど、HTTPのPOSTは大変ですね。


↓が使えるかも。

参考URL:http://www.pstruh.cz/tips/detpg_uploadvbaie.htm
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
お教え頂いた情報を元に数日間試行錯誤してみましたが、
できませんでした。

お礼日時:2004/04/27 10:25

>具体的なコードややり方があるとありがたいのですが、お教え頂けないでしょうか?



具体的に、VBのどのような機能でftpで送信しようとしていたのですか?
Inetコントロール?IternetAPI?Winsockコントロール?

この回答への補足

ご回答ありがとうございます。
現在は WebBrowserコントロール(?)で実験中です。
下記の html と同じ動きをさせたいと思っていますが、submit ボタンを押す動作は成功しているようなのですが、データが送れていません。

html ここから ------------------------------------------------------
<form method="POST" enctype="multipart/form-data" action="wwwupl2.cgi">
<div>ファイル1:<input type="file" name="FILE_A"></div>
<div><input type="submit" value="転送"></div>
</form>
html 終わり --------------------------------------------------------

VB ここから --------------------------------------------------------
URL = "http://www.***.jp/wwwupl2.cgi" ' POST を受信する URL
Flags = 0
TargetFrame = ""

PostData = "FILE_A=c:\********\test.csv"
PostData = StrConv(PostData, vbFromUnicode)

Headers = "Content-Type: multipart/form-data" & vbCrLf
WebBrowser1.Navigate URL, Flags, TargetFrame, PostData, Headers
VB 終わり ----------------------------------------------------------

ソースはネットで見つけたサンプルを自分なりに加工しました。
なお、Inetコントロールでは成功したのですが、これは ftpアカウント情報を
記述する必要があったので使えませんでした。
無知で申し訳ございませんが、よろしくご教授下さい。

補足日時:2004/04/23 16:38
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!