C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[7]: ファイルの送信ができない><


(過去ログ 89 を表示中)

[トピック内 11 記事 (1 - 11 表示)]  << 0 >>

■53301 / inTopicNo.1)  ファイルの送信ができない><
  
□投稿者/ やんまー (23回)-(2010/09/10(Fri) 00:02:16)

分類:[VB.NET/VB2005 以降] 

恐れいります。

アップロードのWEBアプリを使って簡単にファイルのやりとりが出来ないかと思い、VB.NETでも簡単にできそうなことを知り試しているのですが、なぜか失敗します。

---------------------------------
upload.php (拾ったソースですが 汗)
---------------------------------
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>sample</title>
</head>
<body>
<p><?php

if (is_uploaded_file($_FILES["upfile"]["tmp_name"])) {
if (move_uploaded_file($_FILES["upfile"]["tmp_name"], "files/" . $_FILES["upfile"]["name"])) {
chmod("files/" . $_FILES["upfile"]["name"], 0644);
echo $_FILES["upfile"]["name"] . "をアップロードしました。";
} else {
echo "ファイルをアップロードできません。";
}
} else {
echo "ファイルが選択されていません。";
}

?></p>
</body>
</html>
---------------------------

で、VBの方は
--------------------
Sub Button1Click(sender As Object, e As EventArgs)
'ユーザーインターフェイスを表示してファイルをアップロードする
My.Computer.Network.UploadFile( _
"test.txt", "http://localhost/upload/upload.php", "", "",
True, 60000, FileIO.UICancelOption.DoNothing)
End Sub
--------------------

としました。
ボタンを押すと、びゅーっとプログレスバーが上がってうまくいった!!!・・・・と思ったのですが
なにもアップロードされません。

カレントのtext.txtが見つからないかと思い「text.tx」とわざと間違えると、エラーが発生しますので見つかっていると思います。
phpのほうもapacheを止めたりするとエラーになるのでたどれていると思います。

さらにphpがうまく動いていることを確認するために適当にindex.htmlを作って試すのですが、あっさりアップロードできました。
---------------------------
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="upfile" size="30">
---------------------------


仕方ないので他のやり方で
-----------------------
Sub Button2Click(sender As Object, e As EventArgs)
Dim filePath As String = "test.txt"
Dim url As String = "http://localhost/upload/upload.php"
Dim wc As New System.Net.WebClient
Dim resData As Byte() = wc.UploadFile(url, filePath)
Dim resText As String = System.Text.Encoding.UTF8.GetString(resData)
debug.Print(">" & resText)
End Sub
-----------------------

とやってみたものの、なんとログには
「ファイルが選択されていません」
が出ました・・・・

いったいどういう事なのでしょう・・・

なにかお気づきの点がありましたら、どうぞよろしくお願いします。


引用返信 編集キー/
■53302 / inTopicNo.2)  Re[1]: ファイルの送信ができない><
□投稿者/ 囚人 (540回)-(2010/09/10(Fri) 00:15:34)
何がしたいのかわかんないんですけど、クライアントアプリを VB で作ろうって事ですかね?
PHPはよく知りませんが、そもそもそのコード Windows で動きます? Windowsで動かそうとしてますけども。
chmod あたりが Windows で動く気がしないんですけど。
引用返信 編集キー/
■53304 / inTopicNo.3)  Re[1]: ファイルの送信ができない><
□投稿者/ Azulean (605回)-(2010/09/10(Fri) 00:35:49)
No53301 (やんまー さん) に返信
> アップロードのWEBアプリを使って簡単にファイルのやりとりが出来ないかと思い、
> VB.NETでも簡単にできそうなことを知り試しているのですが、なぜか失敗します。

UploadFile は HTTP サーバーのファイルを作る機能を利用していると推察されます。
特定の CGI や PHP スクリプトが用意するフォームに対して送信するものではないはずですので、そこにアップロードしたいのであれば UploadFile は使えないとみられます。
引用返信 編集キー/
■53305 / inTopicNo.4)  Re[1]: ファイルの送信ができない><
□投稿者/ shu (25回)-(2010/09/10(Fri) 07:59:27)
No53301 (やんまー さん) に返信
$_FILES["upfile"]["tmp_name"]
が受け取れているか確認する為にphp側でこの内容を出力するようにしてみてはどうでしょう?
upfileにどうやって渡しているのか不思議です。

引用返信 編集キー/
■53308 / inTopicNo.5)  Re[2]: ファイルの送信ができない><
□投稿者/ やんまー (24回)-(2010/09/10(Fri) 09:33:02)
囚人さま Azulean さま shuさま ありがとうございます。


囚人さま
こちらを参考にしています。
http://dobon.net/vb/dotnet/internet/webrequestpost.html


> クライアントアプリを VB で作ろうって事ですかね?
そうです。

> PHPはよく知りませんが、そもそもそのコード Windows で動きます? Windowsで動かそうとしてますけども。

具体的に書かなくて申し訳ありません。
cygwinのapacheを使ってます。
上記の通り
index.html upload.php
を用意しまして、通常のWEBアプリでの操作 index.html → upload.php は正常動作しております。



Azulean さま

>UploadFile は HTTP サーバーのファイルを作る機能を利用していると推察されます。

ええ?!
そうなんですか・・・
では第2引数のphpはなんなのでしょうか・・・・・



shuさま
> upfileにどうやって渡しているのか不思議です。

すいません。PHPに詳しくなくて、ログの出し方調べ中です。

ただ、上述「ファイルが選択されていません」から、なにもわたっていない様に思えます。

引用返信 編集キー/
■53309 / inTopicNo.6)  Re[3]: ファイルの送信ができない><
□投稿者/ shu (27回)-(2010/09/10(Fri) 10:00:11)
No53308 (やんまー さん) に返信
http://dobon.net/vb/dotnet/internet/webrequestpost.html#section5
によると提示された方法によるUploadFileのフィールド名はfileに固定されているようです。
phpのupfileをfileに変更するかDobonさんのページにあるもう1つの方法で行う必要がありそうです。
引用返信 編集キー/
■53316 / inTopicNo.7)  Re[4]: ファイルの送信ができない><
□投稿者/ やんまー (25回)-(2010/09/10(Fri) 11:29:28)
shu 様

> $_FILES["upfile"]["tmp_name"]
> が受け取れているか確認する為にphp側でこの内容を出力するようにしてみてはどうでしょう?


ログを取ってみました。

index.htmlからの場合 ・・・ /tmp/phpLEKDIM
アプリからの場合   ・・・ 空

でした。。。

うまくわたってませんね
引用返信 編集キー/
■53342 / inTopicNo.8)  Re[4]: ファイルの送信ができない><
□投稿者/ やんまー (26回)-(2010/09/10(Fri) 14:35:15)
shu さま

> http://dobon.net/vb/dotnet/internet/webrequestpost.html#section5
> によると提示された方法によるUploadFileのフィールド名はfileに固定されているようです。
> phpのupfileをfileに変更するかDobonさんのページにあるもう1つの方法で行う必要がありそうです。


レスありがとうございます。

fileに固定されているというのは
あくまでも「ファイル名がfile」になってしまうよ、ということだと思います。

$_FILES["upfile"]["tmp_name"]

$_FILES["upfile"]["name"] ◆ ← これが「file」になるってことですよね?

もなにも渡ってこないので
原因が違うような気がするのですが・・・。


引用返信 編集キー/
■53343 / inTopicNo.9)  Re[5]: ファイルの送信ができない><
□投稿者/ shu (33回)-(2010/09/10(Fri) 14:43:32)
No53342 (やんまー さん) に返信
> shu さま
>
>>http://dobon.net/vb/dotnet/internet/webrequestpost.html#section5
>>によると提示された方法によるUploadFileのフィールド名はfileに固定されているようです。
>>phpのupfileをfileに変更するかDobonさんのページにあるもう1つの方法で行う必要がありそうです。
>
>
> レスありがとうございます。
>
> fileに固定されているというのは
> あくまでも「ファイル名がfile」になってしまうよ、ということだと思います。
>
> $_FILES["upfile"]["tmp_name"]
> も
> $_FILES["upfile"]["name"] ◆ ← これが「file」になるってことですよね?
>
> もなにも渡ってこないので
> 原因が違うような気がするのですが・・・。
>
$_FILES["file"]["〜"]は試してみましたか?
引用返信 編集キー/
■53345 / inTopicNo.10)  Re[6]: ファイルの送信ができない><
□投稿者/ やんまー (27回)-(2010/09/10(Fri) 16:14:10)
shu 様

> $_FILES["file"]["〜"]は試してみましたか?


おおおお!!そういう意味だったんですね!

fwrite($fp,$_FILES["file"]["tmp_name"] . "\n");
fwrite($fp,$_FILES["file"]["name"] . "\n");
に対して

/tmp/phpVP9NTB
test.txt

ってきましたよー!!

これで解決しそうです!

引用返信 編集キー/
■53346 / inTopicNo.11)  Re[7]: ファイルの送信ができない><
□投稿者/ やんまー (28回)-(2010/09/10(Fri) 16:46:28)
shu 様

解決しました!
感謝です!!!
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -