用文本+ASP打造新闻发布系统/图片上传(不是我写的)upload.inc

上传

<SCRIPT RUNAT=SERVER LANGUAGE=VBSCRIPT>
Function GetUpload(FormData)
    Dim DataStart,DivStr,DivLen,DataSize,FormFieldData
  '分隔标志串(+CRLF)
    DivStr = LeftB(FormData,InStrB(FormData,str2bin(VbCrLf)) + 1)
  '分隔标志串长度
    DivLen = LenB(DivStr)
    PosOpenBoundary = InStrB(FormData,DivStr)
    PosCloseBoundary = InStrB(PosOpenBoundary + 1,FormData,DivStr)
    Set Fields = CreateObject("Scripting.Dictionary")
  
  While PosOpenBoundary > 0 And PosCloseBoundary > 0
    'name起始位置(name="xxxxx"),加6是因为[name="]长度为6
    FieldNameStart = InStrB(PosOpenBoundary,FormData,str2bin("name=")) + 6
    FieldNameSize = InStrB(FieldNameStart,FormData,ChrB(34)) - FieldNameStart '(")的ASC值=34
    FormFieldName = bin2str(MidB(FormData,FieldNameStart,FieldNameSize))
    
    'filename起始位置(filename="xxxxx")
    FieldFileNameStart = InStrB(PosOpenBoundary,FormData,str2bin("filename=")) + 10
    If FieldFileNameStart < PosCloseBoundary And FieldFileNameStart > PosopenBoundary Then
     FieldFileNameSize = InStrB(FieldFileNameStart,FormData,ChrB(34)) - FieldFileNameStart '(")的ASC值=34
     FormFileName = bin2str(MidB(FormData,FieldFileNameStart,FieldFileNameSize))
    Else
     FormFileName = ""
    End If
    
    'Content-Type起始位置(Content-Type: xxxxx)
    FieldFileCTStart = InStrB(PosOpenBoundary,FormData,str2bin("Content-Type:")) + 14
    If FieldFileCTStart < PosCloseBoundary And FieldFileCTStart > PosOpenBoundary Then
     FieldFileCTSize = InStrB(FieldFileCTStart,FormData,str2bin(VbCrLf & VbCrLf)) - FieldFileCTStart
     FormFileCT = bin2str(MidB(FormData,FieldFileCTStart,FieldFileCTSize))
    Else
     FormFileCT = ""
    End If
    
    '数据起始位置:2个CRLF开始
    DataStart = InStrB(PosOpenBoundary,FormData,str2bin(VbCrLf & VbCrLf)) + 4
    If FormFileName <> "" Then
     '数据长度,减1是因为数据文件的存取字节数问题(可能是AppendChunk方法的问题):
     '由于字节数为奇数的图象存到数据库时会去掉最后一个字符导致图象不能正确显示,
     '字节数为偶数的数据文件就不会出现这个问题,因此必须保持字节数为偶数。
     DataSize = InStrB(DataStart,FormData,DivStr) - DataStart - 1
     FormFieldData = MidB(FormData,DataStart,DataSize)
    Else
     '数据长度,减2是因为分隔标志串前有一个CRLF
     DataSize = InStrB(DataStart,FormData,DivStr) - DataStart - 2
     FormFieldData = bin2str(MidB(FormData,DataStart,DataSize))
    End If

    '建立一个Dictionary集存储Form中各个Field的相关数据
    Set Field = CreateUploadField()
    Field.Name = FormFieldName
    Field.FilePath = FormFileName
    Field.FileName = GetFileName(FormFileName)
    Field.ContentType = FormFileCT
    Field.Length = LenB(FormFieldData)
    Field.Value = FormFieldData
    
    Fields.Add FormFieldName, Field
    
    PosOpenBoundary = PosCloseBoundary
    PosCloseBoundary = InStrB(PosOpenBoundary + 1,FormData,DivStr)
  Wend
  Set GetUpload = Fields
End Function

'把二进制字符串转换成普通字符串函数
Function bin2str(binstr)
  Dim varlen,clow,ccc,skipflag
  '中文字符Skip标志
  skipflag=0
  ccc = ""
  If Not IsNull(binstr) Then
   varlen=LenB(binstr)
   For i=1 To varlen
     If skipflag=0 Then

时间: 2024-08-03 08:18:14

用文本+ASP打造新闻发布系统/图片上传(不是我写的)upload.inc的相关文章

用文本+ASP打造新闻发布系统/图片上传

上传 <SCRIPT RUNAT=SERVER LANGUAGE=VBSCRIPT> Function GetUpload(FormData) Dim DataStart,DivStr,DivLen,DataSize,FormFieldData '分隔标志串(+CRLF) DivStr = LeftB(FormData,InStrB(FormData,str2bin(VbCrLf)) + 1) '分隔标志串长度 DivLen = LenB(DivStr) PosOpenBoundary = I

用文本+ASP打造新闻发布系统(二)新闻添加

<!--#include file="news_session.asp"--><html><head> <meta http-equiv="Content-Language" content="zh-cn"><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><

用文本+ASP打造新闻发布系统

//图片上传 <SCRIPT RUNAT=SERVER LANGUAGE=VBSCRIPT> Function GetUpload(FormData) Dim DataStart,DivStr,DivLen,DataSize,FormFieldData '分隔标志串(+CRLF) DivStr = LeftB(FormData,InStrB(FormData,str2bin(VbCrLf)) + 1) '分隔标志串长度 DivLen = LenB(DivStr) PosOpenBoundary

用文本+ASP打造新闻发布系统(四)新闻删除/新闻删除

<!--#include file="news_session.asp"--> <%   dim id     id=Request.QueryString ("id")    dim myfso    set myfso=createobject("scripting.filesystemobject")     if myfso.FileExists(server.mappath("./news_content/&

用文本+ASP打造新闻发布系统(四)新闻删除

<!--#include file="news_session.asp"--> <% dim idid=Request.QueryString ("id")dim myfsoset myfso=createobject("scripting.filesystemobject") if myfso.FileExists(server.mappath("./news_content/"&id&&q

用文本+ASP打造新闻发布系统(五)新闻修改

'#######news_update.asp<!--#include file="news_session.asp"--> <SCRIPT ID=clientEventHandlersJS LANGUAGE=javascript> <!-- function client_onblur(ii) {   server=eval("form1.server"+ii)   if(server.value==""){   

用文本+ASP打造新闻发布系统(三)新闻列表显示

显示 <%     dim myfso,myread    set myfso=createobject("scripting.filesystemobject")    set myread=myfso.opentextfile(server.mappath("./new_list.asp"),1,0)     if myread.atendofstream then    Response.Write "目前没有添加新闻"    Res

用文本+ASP打造新闻发布系统。几点补充

1.这里略去密码验证密码保存在一个password_admin.asp的文件里我的是这样的:<%response.end%>|mysoso|mysoso注意要加<%response.end%>作用相信大家都懂2.要注意"|"编码防子用户输入|导致程序读取出错3.程序中字符处理函数是刘子良写的在此感谢(我做了一点点修改)4.关于那个动态数组的问题如果大家有办法请,告诉我谢谢联系so8so@21cn.com

用文本+ASP打造新闻发布系统几点补充

1.这里略去密码验证 密码保存在一个password_admin.asp的文件里 我的是这样的: <%response.end%>|mysoso|mysoso 注意要加<%response.end%>作用相信大家都懂 2.要注意"|"编码防子用户输入|导致程序读取出错 3.程序中字符处理函数是刘子良写的在此感谢(我做了一点点修改) 4.关于那个动态数组的问题如果大家有办法请,告诉我谢谢 联系 so8so@21cn.com