웹 프로젝트에서 작업 할 때는 종종 파일 업로드 기능을 사용해야하지만 브라우저/서버 기반 애플리케이션 환경에 다양한 유형의 파일을 업로드하면 항상 사용자가 어려움을 겪고 있습니다. 그렇다면 파일을 업로드하는 ASP의 방법은 무엇입니까?
하나. 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 프로그램에 클래스 파일을 포함하십시오. 특정 처리 방법은 관련 소개를 참조하십시오.
둘. 파일 업로드 구현 방법 예제
파일 업로드를 구현하려면 구성 요소 또는 구성 요소가없는 메소드를 사용할 수 있습니다. Microsoft Posting acceptor (Short for Short)와 같은 구성 요소 클래스의 경우 Microsoft가 출시 한 무료 서버 구성 요소입니다. 이러한 구성 요소의 설치도 더 편리합니다. Microsoft의 MPA의 경우 설치 파일을 실행하십시오. 일반 DLL 구성 요소 양식의 경우 등록해야합니다. 예를 들어, aspcnup.dll을 사용하려면 Window 2000에서 regsvr32 [path/] aspcnup.dll을 실행하고 시스템은 등록이 성공했다고 프롬프트합니다.이 구성 요소를 사용할 수 있습니다. Componentless 클래스의 경우 사용할 때 다음과 같은 설명을 포함시킵니다.
<!-#include file = "upload.inc"-> 설정 업로드 = new Upload_5xSoft '업로드 개체 생성
속성 및 작동 방법은이 구성 요소의 사용자 설명서를 참조하십시오.
다음은 aspcnup.dll 구성 요소를 사용하여 일부 유형의 파일을 업로드하기위한 소스 코드 (upload.asp)입니다.
<% @ language = "vbscript"set fileup = server.createObject ( "aspcn.upload") fileup.maxsize = 200000 fileup.path.path.path.path.path.path.path.path.path.pit.count fieldname = fileup.fieldname (i) if FileUp.fileType (Zip) "" ileup.fileType (FieldName) = "rar"그런 다음 파일 업. Save FieldName End 다음 설정 파일을 설정하면 = NOTE%>
브라우저/서버 응용 프로그램 모델은 여전히 빠르게 개발 중입니다. Microsoft의 새로 시작된 ASP.NET에서 파일 업로드 기능이 내장되어 매우 간단하고 편리합니다. 새로운 기술로서 ASP.NET은 ASP의 간단한 업그레이드가 아닙니다. 많은 새로운 기능을 포함하는 웹 개발을위한 새로운 프레임 워크입니다. ASP.NET은 쉽게 작성하고 더 명확하게 구조 코드를 제공하며보다 쉽게 재사용하고 공유하여보다 실용적인 프로그램을 개발할 수 있습니다.
위는이 기사의 모든 내용입니다. 이 기사의 내용이 모든 사람의 연구 나 업무에 도움이되기를 바랍니다. 또한 잘못된 새로운 기술 채널을 지원하기를 바랍니다!