지난번에 언급 된 업로드 된 이미지는 Daoxiang Laonong이 개발 한 구성 요소없이 업로드되었습니다. 업로드 프로세스는 이미지를 지정된 폴더에 먼저 저장하고 동시에 데이터베이스 필드로의 경로를 저장하는 것입니다. 디스플레이 이미지는 데이터베이스 테이블의 경로 필드에 따라 표시됩니다. 물론, 삭제와 같은 그림 관리와 관련하여 : 경로 만 삭제되고 경로에 따라 FSO를 통해 실제 그림을 삭제해야합니다 ...
이미지가 필드의 값으로 직접 저장되는 상황이 있습니까? 그림의 작업은 데이터 필드 작업만큼 능숙합니다. 대답은 예입니다. 필드의 유형을 올레 객체로 설정하십시오.
지식 포인트 : OLE 객체 필드는 다른 프로그램에서 생성 된 문서, 그림, 사운드 및 기타 유형의 이진 데이터에 대한 데이터를 저장하는 데 사용됩니다. OLE 객체는 Microsoft 액세스 테이블의 필드에 연결되거나 내장 될 수 있습니다.
1. 디자인 데이터베이스 readimg.mdb
손쉬운 디버깅을 위해 ID (자동 번호, 키워드), IMG (Ole Object)의 두 필드가 포함 된 디자인 테이블 imgurl.
2. 데이터베이스 파일 Conn.asp에 연결하십시오
<% db_path = "readimg.mdb" set conn = server.createobject ( "adodb.connection") connstr = "driver = {Microsoft Access Driver (*.mdb)}; dbq ="& server.mappath (db_path) CONN.OCEN CONNSTR %> |
3. 사진 업로드를 위해 양식 페이지 upload.html을 제공하십시오
<form action = "upload.asp"method = "post"enctype = "multipart/form-data"> <입력 유형 = "파일"이름 = "imgurl"> <입력 유형 = "제출"이름 = OK 값 = "OK"> </form> |
4. 데이터를 수락하고 레코드 페이지 업로드를 추가하십시오
<!-#포함 파일 = "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) set rs = server.createobject ( "adodb.recordset") Rs. "Imgurl에서 선택 *", Conn, 3,3 rs.addnew Rs ( "IMG"). AppendChunk MyData Rs.update Rs.Close RS = 아무것도 설정하지 않습니다 Conn = 아무것도 설정하지 않습니다 Response.redirect "index.asp" %> |
5. 데이터베이스 테이블에서 그림 필드의 내용을 추출하여 그림 페이지 showimg.asp를 표시합니다.
<!-#포함 파일 = "conn.asp"-> <% set rs = server.createobject ( "adodb.recordset") sql = "select * from imgurl where id ="& trim (요청 ( "id")) Rs. Open SQL, Conn, 1,1 응답 .ContentType = "image/*" 응답. Rs.Close RS = 아무것도 설정하지 않습니다 Conn = 아무것도 설정하지 않습니다 %> |