- PR -

ASP.NET(BASP)でのファイルアップロードについて

1
投稿者投稿内容
KENT
会議室デビュー日: 2006/10/03
投稿数: 7
投稿日時: 2006-10-03 20:19
こんにちは。
ASP.NET で開発しています。
WindowsXP Pro、IIS5.1

ファイルのサイズを取得したいために、BASP21を使おうと考えています。

下記ソースで実行しましたが、FormFileNameで入力したパスが取得できません。(""になる。)
tsize、binは取得できています。

ためしに、@の部分で、Request.Files("file1").FileNameを見ると、
正常にテキストに入力した値が取得できています。

調べてはみたのですが、ASP.NETではなかなか見つかりませんでした。
何か情報をお持ちの方がいらっしゃいましたらご提供 をお願い致します。


(WebForm1.aspx側)-------------------------------------------------------
<form method="post" encType="multipart/form-data" runat="server">
<input type="file" size="40" name="file1">
<input id="submit1" type="submit" value="アップロード" name="Submit" runat="server">
</form>


(WebForm1.aspx.vb側)----------------------------------------------------
Private Sub submit1_ServerClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles submit1.ServerClick
Dim basp As Object
Dim bin, tsize
Dim result
Dim fpath, fname, fsize

basp = Server.CreateObject("basp21")
tsize = Request.TotalBytes
bin = Request.BinaryRead(tsize)

'@
fpath = basp.FormFileName(bin, "file1") '←ここでfpathが""になる
fname = Mid(fpath, InStrRev(fpath, "\") + 1) 'ファイル名部分だけを取り出す(例:c:\hoge\test.jpg --> test.jpg)
fsize = basp.FormFileSize(bin, "flle1")
result = basp.FormSaveAs(bin, "file1", "d:\UploadTest\" + fname) 'c:\tmp\は保存先です。
End Sub
どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2006-10-03 22:42
ファイルのサイズをバイト単位で取得できればいいんですよね?
 Request.Files("file1").ContentLength
で取り出せるのではないでしょうか。
まず、フレームワークで準備されているクラスにどんな情報があるか
ドキュメントを調べるくせをつけたほうがいいと思いますよ。
KENT
会議室デビュー日: 2006/10/03
投稿数: 7
投稿日時: 2006-10-04 01:11
どっとねっとふぁんさん、ありがとうございます。
なるほど。
BASPを使うことに執着しすぎて、本来の目的を見失っていたようです。
また、基本に戻りじっくり調べていくようにしたいと思います。
助かりました。

ただ、BASPを使用した場合、ASP.NETではどのようにするとうまくいくのでしょうか。
エラーもでるわけではなく、なにがまずかったのかちょっと気になります。

もしよろしければアドバイスいただけると助かります。
かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2006-10-04 07:09
もともとの目的はファイルサイズを取得することなんですよね。

ということは、無理にBASP21を使用せずに、
どっとねっとふぁん さんのおっしゃる方法でファイルサイズを取得してはどうでしょうか
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2006-10-05 06:18
ん???
ファイルを選択するのは、どのマシンですか?
BASP が実体化するのは、どのマシンですか?
例として出されている「c:\hoge\test.jpg」は、どのマシンからみたパスで、
どのマシンで、そのファイルにアクセスしようとしていますか?

さらに。
使用するブラウザによっては、ファイルのパスは渡らず、ファイル名しか渡りませんよ?
そういうことも考えてみましょう。

_________________
KENT
会議室デビュー日: 2006/10/03
投稿数: 7
投稿日時: 2006-10-05 10:45
かるあさん、ありがとうございます。

そうですね。目的は果たせそうなので今回はBASPを使用せずに
いきたいと思います。
1

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