Asp 에서 다 중 폼 필드 에 구성 요소 파일 이 업로드 되 지 않 은 인 스 턴 스 를 실현 합 니 다.

최근 에 이런 질문 을 자주 하 는데 내용:1.데이터베이스 시트 구조(Access):UserID:Text(업로드 한 파일 을 저장 하 는 사용자 ID)FileContentType:Text(업로드 한 파일 의 형식 을 저장 하 는 데 사 용 됩 니 다.eg:"Application/msword",주로 이 파일 을 올 바 르 게 다운로드 할 수 있 도록 합 니 다)FileContent:OLE Object(파일 데이터 저장)2.HTML 파일 muploadfile.htm  '파일 데이터 업로드 시작 File to send: 

 '파일 데이터 종료

3。ASP 파일 muploadfile.asp

<%Response.Expires=0 기능 bin2str(binstr)      Dim varlen,clow,ccc,skipflag 

    skipflag=0      ccc = ""      If Not IsNull(binstr) Then          varlen=LenB(binstr)          For i=1 To varlen              If skipflag=0 Then                  clow = MidB(binstr,i,1)                 If AscB(clow) > 127 Then                      ccc =ccc & Chr(AscW(MidB(binstr,i+1,1) & clow))                      skipflag=1                  Else                      ccc = ccc & Chr(AscB(clow))                  End If              Else                  skipflag=0              End If          Next      End If      bin2str = ccc  End Function 

varByteCount = Request.TotalBytes bnCRLF = chrB( 13 ) & chrB( 10 ) binHTTPHeader=Request.BinaryRead(varByteCount)         Divider = LEFTB( binHTTPHeader,  INSTRB( binHTTPHeader, bnCRLF ) - 1 )

'파일 도 메 인 이 아 닌 데 이 터 를 읽 기 시작 합 니 다 Do while lenB(binHTTPHeader)>46     binHeaderData = LeftB(binHTTPHeader, INSTRB( binHTTPHeader, bnCRLF & bnCRLF )-1)     strHeaderData=bin2str(binHeaderData)

    lngFieldNameStart=Instr(strHeaderData,"name="&chr(34))+Len("name="&chr(34))     lngFieldNameEnd=Instr(lngFieldNameStart,strHeaderData,chr(34))          strFieldName=Mid(strHeaderData,lngFieldNameStart,lngFieldNameEnd-lngFieldNameStart)     strFieldName=Trim(strFieldName)     strFieldName=Replace(strFieldName,vbcrlf,vbnullstring)         '파일 데이터 판단 시 시작    If strComp(strFieldName,"FileUploadStart",1)=0 Then         binHTTPHeader=MIDB(binHTTPHeader,INSTRB( DataStart + 1, binHTTPHeader, divider ))         exit do     End if     DataStart = INSTRB( binHTTPHeader, bnCRLF & bnCRLF ) + 4      DataEnd = INSTRB( DataStart + 1, binHTTPHeader, divider ) - DataStart

    binFieldValue=MIDB( binHTTPHeader, DataStart, DataEnd )     strFieldValue=bin2str(binFieldValue)     strFieldValue=Trim(strFieldValue)     strFieldValue=Replace(strFieldValue,vbcrlf,vbnullstring)

    '비 파일 업로드 도 메 인 변수 할당    execute strFieldName&"="""&strFieldValue&""""              binHTTPHeader=MIDB(binHTTPHeader,INSTRB( DataStart + 1, binHTTPHeader, divider )) loop

'파일 데이터 처리 시작 Do while lenB(binHTTPHeader)>46          binHeaderData = LeftB(binHTTPHeader, INSTRB( binHTTPHeader, bnCRLF & bnCRLF )-1)     strHeaderData=bin2str(binHeaderData)     '업로드 한 파일 의 Content-Type 읽 기    lngFileContentTypeStart=Instr(strHeaderData,"Content-Type:")+Len("Content-Type:")     strFileContentType=Trim(Mid(strHeaderData,lngFileContentTypeStart))     strFileContentType=Replace(strFileContentType,vbCRLF,vbNullString)     '업로드 한 파일 이름 읽 기    lngFileNameStart=Instr(strHeaderData,"filename="&chr(34))+Len("filename="&chr(34))     lngFileNameEnd=Instr(lngFileNameStart,strHeaderData,chr(34))     strFileName=Mid(strHeaderData,lngFileNameStart,lngFileNameEnd-lngFileNameStart)     strFileName=Trim(strFileName)     strFileName=Replace(strFileName,vbCRLF,vbNullString)     '업로드 파일 데이터 읽 기    DataStart = INSTRB( binHTTPHeader, bnCRLF & bnCRLF ) + 4      DataEnd = INSTRB( DataStart + 1, binHTTPHeader, divider ) - DataStart     If strFileName<>"" Then         binFieldValue=MIDB( binHTTPHeader, DataStart, DataEnd )         '업로드 한 파일 을 데이터베이스 에 기록 합 니 다.        set conn = Server.CreateObject("ADODB.Connection")         conn.Open "DSN=abc"         SQL="select * from User_File"         set rs=server.CreateObject("ADODB.Recordset")         rs.Open sql,conn,3,3         rs.addnew         rs("UserID")=UserID         rs("FileContentType")=strFileContentType         rs("FileContent").AppendChunk binFieldValue         rs.update         rs.close         set rs=Nothing         conn.Close         set conn=Nothing     End if     binHTTPHeader=MIDB(binHTTPHeader,INSTRB( DataStart + 1, binHTTPHeader, divider )) loop %>  4。사용자 가 업로드 한 파일 다운로드<%Response.Bufffer      = true Response.Clear UserID=request("UserID")

Set conn=server.createobject("adodb.connection") set rs=server.createobject("adodb.recordset") conn.open "DSN=UploadFile" rs.open "select * from User_File where UserID='"&UserID&"'",conn,3,3 Response.ContentType = rs("FileContentType")

lngOffset=0 conChunkSize=1024 lngPictSize=rs("FileContent").ActualSize Do While lngOffset < lngPictSize   varChunk = rs("FileContent").GetChunk(conChunkSize)   Response.BinaryWrite varChunk   lngOffset = lngOffset + conChunkSize   If lngOffset > lngPictSize Then Exit Do Loop  rs.close set rs=Nothing conn.close set conn=nothing%>

가 바로 이것 입 니 다.이 방법 이 여러분 에 게 도움 이 되 기 를 바 랍 니 다.:)

좋은 웹페이지 즐겨찾기