업로드 된 스크립트 사용
아래는 개발을 위해 업로드 된 스크립트의 예입니다. 이 기사의 다운로드 파일은 예제의 파일과 코드를 제공합니다. 압축 파일을 경로로 릴리스하고 네트워크 서버의 가상 경로를 구성하십시오. 브라우저에서 uploadform.html을 테스트하고 시작할 수 있습니다.
전화 스크립트
다음은 BuildUploadRequest 메소드를 호출하는 방법입니다. 먼저 전체 프로세스를 호출하십시오 : UploadRequest. 그런 다음 BuiluploadRequest 방법을 호출 한 다음 독립 변수의 요청 원본 이진 데이터로 전송하십시오.
bytecount = request.totalBytes
requestbin = request.binaryread (bytecount)
Dim UploadRequest
UPLOADREQUEST = CreateObject를 설정합니다
buildUploadRequest requestBin
데이터는 사전 객체에 분해되어 저장되고 item () 메소드로 복구됩니다. 이 항목 데이터는 vbscript 변수에 저장 될 수 있으며 코드의 어느 곳에서나 사용할 수 있습니다. 데이터는 클라이언트에 대한 응답으로 전송되거나 ASP 코드 또는 파일에 사용되어 데이터베이스에 넣을 수 있습니다.
데이터 검색
uploadrequest 객체의 데이터는 항목 ( "키") 함수로 액세스 할 수 있습니다. 이 상황을 지금 고려해 봅시다 : 이메일 컨트롤의 가치에 액세스하려면. 당신은 이것을 할 수 있습니다 :
이메일 = uploadRequest.Item ( "이메일").
이것은 텍스트 컨트롤이기 때문에 컨텐츠는 문자열 이며이 문자열은 다른 vbscript 문자열처럼 사용할 수 있습니다. 이진 데이터의 경우 컨텐츠를 동일한 방법으로 복원 할 수 있습니다.
piction = uploadrequest.item ( "blob").
파일 이름 및 컨텐츠 유형과 같은 다른 정보에도 액세스 할 수 있습니다. 그들은 텍스트 제어입니다.
contentType = uploadRequest.Item ( "blob").
FilePathName = uploadRequest.Item ( "blob") ( "Filename").
vbscript 코드에서 데이터를 사용하십시오
업로드 된 데이터는 다른 변수와 마찬가지로 vbscript 코드에서 사용할 수 있습니다. 예를 들어, 응답으로 클라이언트에게 다시 보낼 수 있습니다.
귀하의 이메일은 다음과 같습니다. < % = 이메일 %>
Young의 파일 이름은 < % = FilePathName %>입니다.
소설의 파일 유형은 < % = contenttype %>입니다.
이진 데이터는 클라이언트로 다시 보낼 수도 있습니다. 컨텐츠 유형을 설정해야하며 바이너리 데이터를 사용하여 바이너리 작성 방법을 작성할 수 있습니다.
응답
업로드 된 데이터를 파일에 작성하십시오
파일 클래스 컨트롤의 경우 이진 데이터를 클라이언트로 다시 전송하는 대신 파일 또는 데이터베이스 도메인에 이진 데이터를 저장하는 것이 목적입니다. 이 목적은 파일 업로드의 고유 한 특성입니다. 파일 시스템 개체를 사용하여 업로드 된 파일을 서버의 파일 시스템에 저장하십시오.
먼저 파일 시스템 개체를 만듭니다.
'filesytemobject 구성 요소 scriptObject = server.createObject ( "scripting.filesystemobject")
파일 시스템 개체를 사용하여 경로에서 파일을 만듭니다. 경로는 파일 시스템 (예 : c :/temp)을 직접 가리키는 절대적 일 수 있습니다. 네트워크 서버에 의해 정의 된 가상 경로에서도 상대적 일 수도 있습니다. Mappath 메소드와 Path_Info 서버 변수를 사용하여 가상 경로를 절대 경로로 가져갑니다.
쓰기 메소드는 독립 변수로서 듀얼 -Byte 문자열이 필요하므로 단일 바이트 번호는 문자열로 변환됩니다. 쓰기 메소드는이 듀얼 -Byte 문자열을 변환하여 ASCII 형식으로 작성합니다. 이것은 원래의 단일 -Byte 문자열을 포함하는 이진 컨텐츠를 설정합니다. 이 파일을 "업로드 + filename"이라고 명명했습니다.
'파일 세트 작성 및 쓰기 MyFile = ScriptObject.createTextFile (Server.Mappath (request.ServerVariables_ ( "Path_Info") 및 "업로드 된"& Filename)
i = 1 to lenb (값)의 경우
myfile.write chr (ascb (midb (value, i, 1)))
다음
myfile.close
업로드 된 데이터를 데이터베이스에 시작하십시오
데이터는 데이터베이스에 저장 될 수도 있습니다. 컨텐츠 유형은 데이터베이스에 저장되어 데이터를 나중에 표시 할 수 있도록해야합니다. 우선, 데이터베이스와 연결해야합니다.
set conn = server.createobject ( "adodb.connection")
conn.open "dsn = wroxdns", "user", "pass"
그런 다음 연결에서 레코드 세트를 만듭니다.
SQL = "MyTable의 ContentType"사진 선택 "
rs = server.createobject를 설정합니다
Rs.OOPEN SQL, CONN, 3, 3, 3
레코드 세트가 생성 된 후 이진 데이터를 데이터베이스의 블로브 도메인에 넣습니다.
pictureChunk = picture & chrb (0)
Rs.Fields ( "Piction").
Rs.Fields ( "ContentType") = ContentType
Rs.update
conn.close
ApendChunk 방법에서는 버그를 해결해야합니다. 실제로 바이너리 데이터에 이상한 숫자 바이트가있을 때 AppendChunk 방법이 마지막 바이트를 전송하지 않는다는 것을 알았습니다. 솔루션은 모든 바이트가 전송되도록 Chr (0)를 추가하는 것입니다. 어쩌면 다른 방법이있을 수 있습니다. 그렇다면 말 해주세요.
데이터베이스를 반영하려면 동일한 레코드 세트를 사용하고 올바른 컨텐츠 유형을 사용하여 클라이언트로 다시 보냅니다.
응답 .ContentType = rs.Fields ( "ContentType")
크기 = Rs.Fields ( "Piction")
blob = rs.fields ( "Piction").
응답 .BinaryWrite Blob
결론적으로
이 기사에서는 파일을 vbscript로 제출하는 완전한 방법을 보여줍니다. 인코딩은 세 번째 파티 제품과 무관 한 완전히 vbscript입니다.
먼저 업로드 프로세스를 소개합니다 (HTML의 "Multipart/Form-Data"컨텐츠 사용). 그런 다음 업로드 된 vbscript 코드를 자세히 소개하십시오. 처음에는 작동 문자열의 vbscript 함수와 단일 바이트 번호 시리즈에 대한 간단한 검토입니다. 그런 다음 스크립트 코드와 데이터 업로드 구조를 소개합니다.
마지막으로, ASP 코드의 변수 업로드에서 데이터베이스 또는 파일 시스템에 이르기 까지이 스크립트의 여러 목적은 파일 업로드를 저장합니다.
아래 링크를 클릭하여 <a href = "http://www.asptoday.com/articles/images/20000316.zip">이 기사의 일상 코드입니다.