前述のアップロードされた画像は、Daoxiang Laonongによって開発されたコンポーネントなしでアップロードされました。アップロードプロセスは、最初に指定されたフォルダーに画像を保存し、同時にデータベースフィールドへのパスを保存することです。表示画像は、データベーステーブルのパスフィールドに従って表示されます。もちろん、削除などの写真の管理に関連してください。パスのみが削除され、実際の画像はパスに応じてFSOを介して削除する必要があります...
画像がフィールドの値として直接保存される状況はありますか?写真の操作は、操作データフィールドと同じくらい熟練しています。答えはイエスです、フィールドのタイプをOLEオブジェクトに設定するだけです
ナレッジポイント:OLEオブジェクトフィールドは、他のプログラムで作成されたドキュメント、写真、サウンド、およびその他の種類のバイナリデータのデータを保存するために使用されます。 OLEオブジェクトは、Microsoftアクセステーブルのフィールドにリンクまたは埋め込まれます。
1.データベースの設計testimg.mdb
簡単にデバッグするために、2つのフィールドを備えたデザインテーブルImgurl:id(auto number、keyword)、img(oleオブジェクト)
2。データベースファイルconn.aspに接続します
<% db_path = "testimg.mdb" conn = server.createObject( "adodb.connection")を設定します connstr = "driver = {microsoftアクセスドライバー(*.mdb)}; dbq ="&server.mappath(db_path) conn.open connstr %> |
3.写真をアップロードするためのフォームページupload.htmlを提供します
<form action = "upload.asp" method = "post" enctype = "multipart/form-data"> <入力型= "ファイル" name = "imgurl"> <入力型= "submit" name = ok value = "ok"> </form> |
4.データを受け入れ、レコードページupload.aspを追加します
<! - #include file = "conn.asp" - > <% formsize = request.totalbytes formdata = request.binaryread(formsize) bncrlf = chrb(13)&chrb(10) divider = leftb(formdata、clng(instrb(formdata、bncrlf))-1) dataStart = instrb(formdata、bncrlf&bncrlf)+4 DataEnd = instrb(DataStart+1、FormData、Divider)-DataStart mydata = midb(formdata、datastart、dataend) rs = server.createObject( "adodb.recordset")を設定します rs.open "select * from imgurl"、conn、3,3 rs.addnew rs( "img")。appendchunk mydata rs.update rs.close rs = Nothingを設定します conn =何も設定しません Response.Redirect "index.asp" %> |
5.データベーステーブルに画像フィールドのコンテンツを抽出して、画像ページを表示するshowimg.aspを表示します
<! - #include file = "conn.asp" - > <% rs = server.createObject( "adodb.recordset")を設定します sql = "select * from imgurl where id ="&trim(request( "id")) rs.open sql、conn、1,1 Response.ContentType = "Image/*" Response.binarywrite rs( "img")。getChunk(8000000) rs.close rs = Nothingを設定します conn =何も設定しません %> |