dポイントプレゼントキャンペーン実施中!

WEBフォームから商品コード、画像ファイルを選択して登録ボタンを押したら商品コードをkeyにしてimage型のフィールドに画像データを登録・更新するプログラムを作成しているのでしが、どのようにしたら実現できるのかわからずに困っています。

<入力フォーム>
<form name="form1" enctype="multipart/form-data" method="post" action="imageup.asp">
<table width="100%" border="1" cellspacing="3" cellpadding="3">
<tr>
<td>商品コード(グループコード)</td>
<td>画像ファイル(jpeg)</td>
</tr>
<tr>
<td>
<input type="text" name="minor" style="ime-mode:disabled;">
</td>
<td>
<input type="file" name="file">
</td>
</tr>
</table>

<div align="center"><br>
<input type="submit" name="submit" value="登録">
</div>
</form>

受取側のプログラムがわかりません。
プログラマ初心者です。どうか宜しくお願いします。

A 回答 (4件)

No1です。



objRs.Fields("フィールド名").Value = fileBinary
以外のアップデートはできるのでしょうか?

fileBinaryは取得できていますか?
fileNameやfileSizeが取得できているか調べてください。
    • good
    • 0

UPLODE文ではできないかもしれません。


下記方法で試してみてください。


strSelectSQL = "SELECT フィールド名 FROM テーブル名 WHERE コード=code
Set objRs = CreateObject("ADODB.Recordset")
objRs.Open strSelectSQL, objConn ,2 ,3 ,1

Call objRs.AddNew
objRs.Fields("フィールド名").Value = fileBinary
objRs.Fields("コード").Value = code
Call objRs.Update

objRs.Close
Set ObjRs = Nothing

この回答への補足

色々とご親切にありがとうございます。

ご指導のように行ってみたのですが下記エラーとなってりまいます。
私なりに色々調べてやってみたのですが、まだ解決できない状態です。

ADODB.Recordset (0x800A0BB9)
引数が間違った型、または許容範囲外であるか、競合しています。

補足日時:2007/03/08 15:29
    • good
    • 0
この回答へのお礼

解決いたしました。
大変、ありがとうございました。

お礼日時:2007/03/08 17:46

No1です



Set objBasp = Server.CreateObject("basp21")

'送信データを取得
lngPostDataSize = CLng(Request.TotalBytes)
binPostData = Request.BinaryRead(lngPostDataSize)

fileName = objBasp.FormFileName(binPostData, "file")'画像ファイル名
fileBinary = objBasp.FormBinary(binPostData, "file")'画像のバイナリデータ
fileSize = objBasp.FormFileSize(binPostData,"file") / 1024 '画像サイズKBにしてる

code = objBasp.Form(binPostData,"code") '商品コード

これでとれないでしょうか?
後は画像ファイル(fileBinary)をファイルシステムオブジェクトで任意フォルダへコピーしてやればよいと思います。

この回答への補足

ご丁寧にありがとうございます。エラーはなくなり商品コード等は取得できました。
これをデータベースに登録するのですがimage型ですが、そのまま
update テーブル名 set フィールド名=fileBinary where コード=code
で更新すると下記、エラーとなります。バイナリが取得できていないのでしょうか?何度もすいません。

型が一致しません。

補足日時:2007/03/07 19:58
    • good
    • 0

ASPでのファイルのアップロードなどは、BASE21を使うのが一般的なようです。



下記サイトを一度のぞいてみてください。

参考URL:http://www.hi-ho.ne.jp/babaq/basp21.html

この回答への補足

BASE21を使って下記のようにしています。
filename = Request.Form("file") '画像ファイル
code = Request.Form("code") '商品コード
Dim lngBytes '送信バイト数
Dim valData '取得変数
lngBytes = Request.TotalBytes
valData = Request.BinaryRead(lngBytes)
Set bobj = Server.CreateObject("basp21")
sarray = bobj.FormBinary(valData,filename)

すると
Request オブジェクト, ASP 0206 (0x80004005)
Request.Form コレクションを使用した後は、BinaryRead を呼び出せません。
とエラ-になります。

補足日時:2007/03/07 18:28
    • good
    • 0

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