하나. ASP를 기반으로 파일 업로드의 구현 원리 분석
기본 원칙은 다음과 같습니다. ADO 스트림 객체의 Binary Read 메소드를 사용하여 양식의 모든 데이터를 읽고 필요한 파일 데이터를 가로 채며 이진 파일에 저장하십시오.
다음은 업로드 파일 페이지 (upload.htm)의 예입니다.
< html t body >< body name = "upload"method = "post"enctipe = "multipart/form-data"action = "upload.asp"> < input type = "file"name = "filename"> < input type = "value ="upload "> <</td> </form> </html>
파일 객체는 프로그램에 사용되므로 Upload.asp에서 Binaryread 메소드를 사용하여 읽는 원래 데이터가 선택된 파일 자체의 데이터 일뿐 만 아니라 제출 페이지의 경로, 유형, 양식 도메인 이름 및 사용자 하드 디스크의 기타 관련 정보에 대한 설명도 포함되어 있습니다. 이런 식으로 파일의 특정 콘텐츠를 추출해야합니다. 분석에 따르면, 데이터의 헤더 정보와 데이터 사이의 분할 라인은 두 쌍의 캐리지 리턴 라인 브레이크이며, 끝에 정보를 분리하고 있습니다. 유사한 방법을 사용하여 파일 데이터를 얻을 수 있습니다.
dim formdata.formsize, dataStart, clstr, divstrformsize = request.totalByTesformData = request.binaryread (formsize) clstr = chrb (13) & chrb (10) dataStart = instrb (formdata.clstr)+4'4는 캐리지 리턴 라인 속성 문자의 길이입니다. divstr = leftb (formdata, instrb (formdata, clstr) -1) dataSize = instrb (datastart+1, formdata, divstr) -datastart-2formData = midb (formData, DataStart, DataSize) FormData는 파일의 내용입니다.
해당 치료는 중간에 필요에 따라 수행 될 수 있습니다. 마지막 작업은 파일을 저장하는 것입니다. 저장하는 두 가지 방법이 있습니다. 하나는 VB 또는 VC와 같은 프로그램에서 이진 파일 작동 방법을 사용하고 프로젝트에 적절한 유형 라이브러리를 추가 한 다음 DLL 파일로 컴파일하고 사용할 때 DLL 파일을 등록하는 것입니다. 파일 저장 프로그램은 다음과 같습니다.
Public Function SaveFile (String As String)으로 String Dim ObjContext As ObjectContext Dim ObjRequest AS 요청 세트 SET OBJCONTEXT = GetObjectContext () SET OBJREQUEST = OBJCONTEXT ( "Request") '다음 코드는 바이 테트, CLSTR, Divstr Dim DatastART와 같은 파일 스토리지 Dim FormData ()와 관련된 작업입니다. DataSize = objrequest.totalBytes redim formdata (datasize-1) formdata = objrequest.binaryread (datasize) clstr = chrb (13) & chrb (10) dataStart = instrb (formdata, clstr & clstr) +4 divstr = leftb (formdata, instrb, clstr) -1). DataSize = instrb (datastart+1, formdata, divstr) -datastart-2 formdata = midb (formdata, dataStart, dataSize) '이진 파일을 만들고 binary for binary for binary for binary #1, formdata close #1 savefile = "ok!" 엔드 기능
두 번째 방법은 Ado Stream에서 제공된 이진 파일 작동 방법을 사용하여 완료하는 것입니다. 파일을 저장하기위한 진술은 다음과 같습니다. streamobj.savetofile (filename, 2). 이러한 종류의 작업에서는 관련 작업을 클래스 파일에 저장할 수 있습니다. 적용 할 때 ASP 프로그램에 클래스 파일을 포함하십시오. 특정 처리 방법은 관련 소개를 참조하십시오.