• 締切済み

WEBフォーム(asp)から画像データをデータベースに更新

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> 受取側のプログラムがわかりません。 プログラマ初心者です。どうか宜しくお願いします。

みんなの回答

回答No.4

No1です。 objRs.Fields("フィールド名").Value = fileBinary 以外のアップデートはできるのでしょうか? fileBinaryは取得できていますか? fileNameやfileSizeが取得できているか調べてください。

回答No.3

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

koji1023
質問者

お礼

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

koji1023
質問者

補足

色々とご親切にありがとうございます。 ご指導のように行ってみたのですが下記エラーとなってりまいます。 私なりに色々調べてやってみたのですが、まだ解決できない状態です。 ADODB.Recordset (0x800A0BB9) 引数が間違った型、または許容範囲外であるか、競合しています。

回答No.2

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)をファイルシステムオブジェクトで任意フォルダへコピーしてやればよいと思います。

koji1023
質問者

補足

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

回答No.1

ASPでのファイルのアップロードなどは、BASE21を使うのが一般的なようです。 下記サイトを一度のぞいてみてください。

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

補足

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 を呼び出せません。 とエラ-になります。

関連するQ&A

  • データーベースをフォームから入力し更新

    データーベースをフォームから入力し更新 登録済のデーターベースをフォームから入力し更新したいのですが、どうしてもうまくいきません。 http://park18.wakwak.com/~little-box/Dreamweaver/sql010.htm のサイトを参考にしているのですがitiran.phpのところからつまづいています。 // 検索した結果を全部表示 echo "<table border=1>"; echo "<tr><td>id</td><td>name</td></tr>"; while($row=mysql_fetch_array($res)){    echo "<tr>";    echo "<td>". $row["name"] . "</td>";    echo "<td>". $row["age"] . "</td>";    echo "<form action=koushin_input.php method=post>";    echo "<input type=hidden name=id value=" . $row["id"] . ">";    echo "<td><input type=submit value=更新></td>";    echo "</form>";    echo "<form action=sakujo.php method=post>";    echo "<input type=hidden name=id value=" . $row["id"] . ">";    echo "<td><input type=submit value=削除></td>";    echo "</form>";    echo "</tr>"; } echo "</table>"; の辺りがおかしいのではと思っているのですが… アドバイスください。また、他に参考になるサイトがありましたらぜひ教えてください。

    • ベストアンサー
    • PHP
  • ボタンクリックでフォーカス移動

    JavaScript超ビギナーなので方法がよくわかりません。 フォームにテキストボックス(配列)4個あり ボタンを押すたびに未記入のテキストボックスにカーソルを移動したいのですが。どのようにしたらいいでしょうか。 <form name="form1" method="post"> <table width="200" border="1"> <tr><td ><input type="submit" name="Submit" value="送信"></td></tr> <tr><td ><input type="text" name="name1"></td></tr> <tr><td><input type="text" name="name1"></td></tr> <tr><td><input type="text" name="name1"></td></tr> <tr><td><input type="text" name="name1"></td></tr> </table> </form>

  • POSTデータをフォームに残す方法

    同一フォーム内PHPへ、フォームをポストした際、 フォーム入力チェックを行い誤りがあれば、 元のフォームに入力したデータを残したいのですがどのようにすればよいでしょうか? 結果によって分岐せずに、フォームに必ず値が残ると言う方法でもかまいません。 //ここから <form method="post" action =""> <table> <tr> <td><input name="title" size="20"></td> <td><input type="submit" name="send" value=" 登録 "></td> </tr> </table> </form> <?php if(len_check($_POST['title'])>8){ echo "文字数オーバーです。"; //フォームに値を戻す処理。 }else{ echo "入力した文字={$_POST['title']}"; //フォームの値は破棄。 } function len_check($s){ return strlen(bin2hex($s)) / 2; } ?>

    • ベストアンサー
    • PHP
  • JSPで個人データを入力、出力

    <html> <head><title>Costomer</head></title> <body bgcolor="white"> <div align="center"> <%@ include file="header.html"%> <form method="POST"action="customer.jsp"> <TABLE> <TR> <TD>Name</TD> <TD><input type="text" name="name"></TD> </TR><br> <TR> <TD>Mail Address</TD> <TD><input type="text" name="mail address"></TD> </TR><br> <TR> <TD>TEL No</TD> <TD><input type="text" name="tel no"></TD> </TR><br> </TABLE> <br> <input type="submit"value="Submit"> <input type="reset"value="Cancel"> </form> <jsp:include page="post-response.jsp" flush ="true" /> <%@ include file="copyright.html"%> </div> </body> </html> …………………………………………………………………………………… <html> <head><title>Post-Response</head></title> <body bgcolor="white"> <div align="center"> <TABLE BORDER="1"> <TR> <TD>Name</TD> <TD></TD> </TR><br> <TR> <TD>Mail Address</TD> <TD></TD> </TR><br> <TR> <TD>TEL No</TD> <TD></TD> </TR><br> </TABLE> <form method="GET"action="customer.jsp"> <input type="reset"value="Clear"> <br> </form> </div> </body> </html> …………………………………………………………………………………… 上のcustomer.jspにName,Mail Adress,Tel no,を入力し、打ち込んだものを下のpost-response.jspに出力したいのですがどのように出力したらよいのかわかりません!何度やってもエラーが出てしまいます。 教えてください!!お願いします! ・上のcustomer.jsp内の<%@ include file="header.html"%>と<%@ include file="copyright.html"%>無視してください!

  • フォームからフレーム内へのデータ受け渡しについて

    いつもお世話になります。 フォームからフレーム内にデータを流してもデータの反映がうまくいきません フォームのソースは下記の通りで、受け側は、3つのフレームで構成されています。 データの送り先は、3つあるフレームのひとつで<FRAME name="bottom" src="URL01.php">になります。 フレームを使わずに、フォームからURL01.phpにデータを送信するときちっと反映されます。 なぜ、フレームを使ったときは、データが反映されないのかがわかりません、ご教示をお願いいたします。 <html> <head> <title></title> <body> </head> <form method="POST" action="URL" target="bottom" name="db_login"> <table border="0"> <tbody> <tr> <td>データベース名</td> <td><input size="20" type="text" style="ime-mode:disabled" name="db_name"></td> </tr> <tr> <td colspan="2" align="center"><br> <input type="submit" value="接続"> </tr> </tbody> </table> </form> </body> </html>

    • 締切済み
    • PHP
  • DWでのメールフォーム作成

    こんにちは。 DWMXでメールフォーム作成をしたのですが、web上で送信ボタンを押すとなぜかメールアプリケーションが立ち上がって、宛先に送信先のアドレスが表示されています。 メールフォームとは送信ボタンを押すとフォームの内容がそのまま送信先に送信されるものですよね? 以下構文です。なにかおかしいのでしょうか。よろしくおねがいします☆ <form action="mailto:自分のアドレス" enctype="text/plain" name="mailform" id="mailform"> <table width="304" border="0" cellspacing="1" cellpadding="1"> <tr> <td><div align="center">name</div></td> </tr> <tr> <td><div align="center"> <input type="text" name="textfield"> </div></td> </tr> <tr> <td><div align="center">mail adress</div></td> </tr> <tr> <td><div align="center"> <input type="text" name="textfield2"> </div></td> </tr> <tr> <td><div align="center">件名</div></td> </tr> <tr> <td><div align="center"> <input type="text" name="textfield3"> </div></td> </tr> <tr> <td><div align="center">本文</div></td> </tr> <tr> <td><div align="center"> <textarea name="textarea"></textarea> </div></td> </tr> <tr> <td>&nbsp;</td> </tr> <tr> <td><div align="center">   <input type="submit" name="Submit" value="送信"> <input type="reset" name="Submit2" value="リセット">

  • file upload でリセットが効かない

    WEBプログラミング初心者でよくわからないので、教えてください。 以下のHTMLで、一旦ファイルを参照しテキストにファイルパスが表示された後、リセットして空白にしても、アップロードをクリックすると、ファイルがアップロードされてしまいます。リセットできないのでしょうか? <form enctype="multipart/form-data" action="XXXXX.php" method="POST"> <table border="0" cellspacing="0"> <tbody> <tr> <td height="30"><input type="submit" value="ファイルをアップロード" name="btnUpload"></td> <td height="30"><input type="reset" value="リセット" name="btnReset"></td> </tr> <tr> <td height="30"><div align="center"><font size="3">在庫CSVファイル:</font></div></td> <td height="30"><input type="file" name="ZaikoUploadfile"></td> </tr> <tr> <td height="30"><div align="center"><font size="3">入庫CSVファイル:</font></div></td> <td height="30"><input type="file" name="NyukoUploadfile"></td> </tr> </tbody> </table> </form>

  • Yes/No型を使ってアップロード

    はじめまして。 下記にhtmlを書かせていただいてますが、このhtmlの『アップロード』のボタンを押すと 1. データベース『mdb』のYes/No型にチェックが入る 2. Yes/No型にチェックが入ったものはアップロードされる ようにすることはできるでしょうか?また、何か参考になるサイト様などがあれば 教えていただきたいのです。 おわかりになる方、よろしくお願いします。 下記のような↓フォームです。 ---------------------- <table> <TR> <TD> <INPUT type='hidden' NAME='UPDATE_ID' VALUE='1'> <center><INPUT TYPE='submit' VALUE=' アップロード '><br><center> <p></p> </TD> <TD>登録ファイル1</TD></FORM> <FORM ACTION='' METHOD='POST'> <TR> <TD> <INPUT type='hidden' NAME='UPDATE_ID' VALUE='2'> <center><INPUT TYPE='submit' VALUE=' アップロード '><br><center> <p></p> </TD> <TD>登録ファイル2</TD></FORM> <FORM ACTION='' METHOD='POST'> <INPUT type='hidden' NAME='UPDATE_ID' VALUE='3'> <TR> <TR> </FORM> <TR> </table>

  • テキストから要素を抜き出してフォームで送信したい。

    <body> <form action="xxx.cgi" method="post"> <input type="hidden" name="n" value="v"> <table> <tr id="hoge_a"> <td>AAA</td> </tr> <tr id="hoge_b"> <td>BBB</td> </tr> </table> <input type="submit" name="submit"> </form> </body> というHTMLの中で、AAAを抜き出してフォームと一緒にpostでサブミットしたいのですが、javascriptで出来ますでしょうか。 よろしくおねがいします。

  • 複数のフォームデータの更新

    こんにちは、 現在下記のような感じで、それぞれのIDごとに、 データを更新しておりますが、 これを一度の更新で、複数のデータの更新を行うには、 どうすればよいでしょうか?SQL文を繰り返せば出来そうですが!? いまひとつ、ピンとこないのでよろしくお願いいたします。 <form name="form1" method="post" action="kousin.php?id=1"> <td>あいう</td> <td><input name="A" type="text" id="A" size="2"></td> <td><input name="B" type="text" id="B" size="2"></td> <td><input name="C" type="text" id="C" size="2"></td> <input type ="submit" name = "submit" value = " 更新 "> <form name="form1" method="post" action="kousin.php?id=2"> <td>かきく</td> <td><input name="A" type="text" id="A" size="2"></td> <td><input name="B" type="text" id="B" size="2"></td> <td><input name="C" type="text" id="C" size="2"></td> <input type ="submit" name = "submit" value = " 更新 "> kousin.php側 $id = $_GET['id']; $time0 = $_POST['A']; $time1 = $_POST['B']; $time2 = $_POST['C']; $update = "update time_tb set "$time" where id='$id'";

    • 締切済み
    • PHP

専門家に質問してみよう