动态网页开发基础实训指导书第十三次实训.docx

上传人:b****3 文档编号:5529080 上传时间:2022-12-18 格式:DOCX 页数:10 大小:20.80KB
下载 相关 举报
动态网页开发基础实训指导书第十三次实训.docx_第1页
第1页 / 共10页
动态网页开发基础实训指导书第十三次实训.docx_第2页
第2页 / 共10页
动态网页开发基础实训指导书第十三次实训.docx_第3页
第3页 / 共10页
动态网页开发基础实训指导书第十三次实训.docx_第4页
第4页 / 共10页
动态网页开发基础实训指导书第十三次实训.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

动态网页开发基础实训指导书第十三次实训.docx

《动态网页开发基础实训指导书第十三次实训.docx》由会员分享,可在线阅读,更多相关《动态网页开发基础实训指导书第十三次实训.docx(10页珍藏版)》请在冰豆网上搜索。

动态网页开发基础实训指导书第十三次实训.docx

动态网页开发基础实训指导书第十三次实训

动态网页开发基础实训指导书第十三次实训

 

 

———————————————————————————————— 作者:

————————————————————————————————日期:

 

实训十三ASP+access实现无组件上传图片    

  本次实训的最终目的是将图片文件上传到文件夹,并将文件名写入数据库中。

  

一、建立数据库my,建表myfile ,表中有四个字段 id(自动编号),upname(文本,表示上传者名字),(文本,表示上传后的文件名),uptime(日期/时间,表示上传的时间)。

  

二、建立一个名为myfile的文件夹,用来放上传后的图片。

  

三、代码部分  

1、upload_5xsoft.asp (这是一个写好的上传类,一会将该文件包含进去,只要会用就可以了)  

<%

 dimData_5xsoft

 Classupload_5xsoft

dim objForm,obj

 Public functionForm(strForm)

strForm=lcase(strForm)  

ifnotobjForm.exists(strForm) then

Form=""

 else

 Form=objForm(strForm)

 end if 

 end function 

 

 Public  function)

 str(strFile)

ifnotobj(strFile)then

  set  

 else 

set (strFile)  

end if

end function

Private  SubClass_Initialize 

dimRequestData,sStart,vbCrlf,sInfo,iInfoStart,iInfoEnd,tStream,iStart,theFile

dim i

  dimiFindStart,iFindEnd

 dimiFormStart,iFormEnd,sFormName 

 Version="!

小陈跑跑!

" 

 setobjForm=Server.CreateObject("Scripting.Dictionary") 

set obj("Scripting.Dictionary") 

 if Request.TotalBytes&lt;1then  Exit Sub  

set tStream =Server.CreateObject("adodb.stream") 

set Data_5xsoft=Server.CreateObject("adodb.stream")  Data_5xsoft.Type =  1

Data_5xsoft.Mode=3 

Data_5xsoft.Open

 Data_5xsoft.WriteRequest.BinaryRead(Request.TotalBytes) 

Data_5xsoft.Position=0 

RequestData =Data_5xsoft.Read 

iFormStart=1

iFormEnd =  LenB(RequestData)

vbCrlf = chrB(13)& chrB(10) 

 sStart= MidB(RequestData,1, InStrB(iFormStart,RequestData,vbCrlf)-1)  

 iStart= LenB (sStart)

iFormStart=iFormStart+iStart+1  

 while (iFormStart +10)<iFormEnd 

 iInfoEnd=InStrB(iFormStart,RequestData,vbCrlf&vbCrlf)+3 

tStream.Type =1  

tStream.Mode =3 

tStream.Open  

Data_5xsoft.Position=iFormStart

 Data_5xsoft.CopyTotStream,iInfoEnd-iFormStart

 tStream.Position= 0 

tStream.Type=  2  

 tStream.Charset ="gb2312"  

sInfo=tStream.ReadText 

 tStream.Close 

'取得表单项目名称

 iFormStart  =  InStrB(iInfoEnd,RequestData,sStart) 

 iFindStart=InStr(22,sInfo,"name=""",1)+6 

 iFindEnd=InStr(iFindStart,sInfo,"""",1)  

 sFormName=lcase(Mid (sinfo,iFindStart,iFindEnd-iFindStart))

'如果是文件

if InStr (45,sInfo,"""",1)  >0then

setthe 

'取得文件名 

iFindStart= InStr(iFindEnd,sInfo,"""",1)+10

iFindEnd=InStr(iFindStart,sInfo,"""",1)  

 s =Mid (sinfo,iFindStart,iFindEnd-iFindStart)

  's=replace(cstr(now()),":

","")

 the(s)

 the(s)

'取得文件类型

  iFindStart  =InStr(iFindEnd,sInfo,"Content-Type:

",1)+14 

iFindEnd=InStr(iFindStart,sInfo,vbCr) 

the =Mid(sinfo,iFindStart,iFindEnd-iFindStart)

 the =iInfoEnd 

the =iFormStart-iInfoEnd-3

 the

  ifnotobj(sFormName)then

 objsFormName,theFile 

endif

 else

 '如果是表单项目

 tStream.Type=1

 tStream.Mode =3

tStream.Open

 Data_5xsoft.Position=iInfoEnd 

Data_5xsoft.CopyTotStream,iFormStart-iInfoEnd-3

 tStream.Position= 0

tStream.Type  = 2 

tStream.Charset  ="gb2312"  

 sFormValue = tStream.ReadText

 tStream.Close 

 ifobjForm.Exists(sFormName)then 

objForm(sFormName)=objForm(sFormName)&","&sFormValue 

else

objForm.Add sFormName,sFormValue 

end if

end  if 

iFormStart=iFormStart+iStart+1 

wend 

 Requestdata=""

 set tStream =nothing

  End  Sub 

 

PrivateSubClass_Terminate  

if  Request.TotalBytes>0 then

objForm.RemoveAll 

obj

set objForm=nothing 

 setobj

Data_5xsoft.Close 

 setData_5xsoft=nothing  

endif 

End Sub 

PrivatefunctionGet(FullPath)

 If FullPath <>""Then

 Get=left(FullPath,InStrRev(FullPath, "\"))  

 Else 

Get = ""

EndIf 

Endfunction 

Private function Get(FullPath)

 Randomize 

IfFullPath <>""Then

'Get  =replace(replace(replace(cstr(now()),":

",""),"",""),"-","")&amp;  mid(FullPath,InStrRev(FullPath,"\")+1)

 tmp=mid(FullPath,InStrRev(FullPath,"\")+1)tmp_instr=len(tmp)-InStrRev(tmp,".")+1 tmp(tmp)  

Get=replace(replace(replace(cstr(now()),":

",""),"",""),"-","") &amp; Cstr(Int(10000000* Rnd ))&"VKEY"&tmp 

 Else 

Get=""

EndIf

 Endfunction

End Class 

 Class 

dim FormName,

PrivateSub Class_Initialize 

=""

 =""

= 0

 0 

FormName =""

= ""

  EndSub  

 Public function SaveAs(FullPath)  

dimdr,ErrorChar,i

 SaveAs=true

 iftrim(fullpath)=""or  or ""or right(fullpath,1)="/"thenexitfunction

setdr=CreateObject("Adodb.Stream")

 dr.Mode=3 

 dr.Type=1 

dr.Open

Data_5xsoft.position=

  Data_5xsoft.copytodr,

dr.SaveToFile  FullPath,2

dr.Close 

 set dr=nothing

SaveAs=false 

 endfunction  

EndClass

%>

二、conn.asp (数据库连接代码,一会包含使用)  

<% 

'打开数据库连接 db="my" 

Set conn = Server.CreateObject("ADODB.Connection") connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(""&db&"") 

'如果你的服务器采用较老版本Access驱动,请用下面连接方法 

'connstr="driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath(db) conn.Open connstr %>  

三、index.asp  

--#include file="conn.asp" --> 

 <%  

set rs=server.CreateObject("adodb.recordset") sql="select * from myfile" ‘表’ rs.open sql,conn,1,1 do while not rs.eof %>   <tr> 

    上传者:

</td> 

 

    图片文件:

</td> 

 <td width="167">" target='_blank' >点击查看 ‘文件夹’ 

  上传时间:

</td>  

 

  </tr> <% 

  rs.movenext   loop 

  rs.close   set rs=nothing   conn.close   set conn=nothing %> 

    <tr> 

    <td width="92">上传者:

 

    </td>      <tr> 

    <td>上传图片:

</td> 

       </tr> 

   

      

    </form>  

四、postnew.asp (处理表单数据的文件)  

<!

--#include file="conn.asp" --> 

--#include file="upload_5xsoft.inc" --> <% 

'这是处理提交过来的数据的页面 

formpath="myfile/"  '设置上传的文件夹名 url="index.asp"  '上传完后,返回到的页面。

 

 

set upload=new upload_5xsoft '实例化一个上传对象upload,这个无组件上传类最大只能上200K的文件,上传超过200K文件,将会非常的慢,如果想上传更大的文件,可以使用有组件上传  

function up_pic()  '这是一个上传函数  iCount=0'记录上传图片数 

 for each formName in upload.objFile '列出所有上传了的文件   set (formName)  '生成一个文件对象   int 

  if >0 and <=262144  then   '如果  > 0 说明有文件数据        

    = LCase(Right()) '最文件名的后四位字符,并转成小写      if ".jpg" or ".gif" or ".GIF" or ".JPG"then '判断图片的格式,你也可以去掉不判断      Pic_Name= '将文件名赋值给变量Pic_Name 

          Server.mappath(formPath&)   ''保存文件        iCount=iCount+1      else 

      response.write "

                response.write "alert('你上传的图片格式不正确');"                 response.write" history.go(-1);"                 response.write ""  

                response.end      end if       

        else if >262144 then  '如果文件大于256K,这个数值你可以自己算256×1024 

                response.write "<script language=javascript>" 

                response.write "alert('上传的图片大于256K,上传失败!

');"                 response.write" history.go(-1);"                 response.write ""                 response.end   end if 

        end if 

  set  

 next 

 up_pic=Pic_Name   '本函数的作用是,将上传的图片上传到文件夹中,并将文件名返回 end function 

 

 

picname=up_pic() '调用up_pic()函数,返回文件名  

set rs=server.CreateObject("adodb.recordset") '建立一个记录集对象rs sql="select * from myfile" 

rs.open sql,conn,1,3  '打开记录集参数1,3表示可以修改方式打开 

rs.addnew 

rs("upname")=trim(upload.form("upname")) '这里要注意,必须用upload.form来获取表单的值,和平常不一样,不能用request.form rs("")=picname  

rs("uptime")=now() rs.update 

rs.close  '使用完后关闭记录集 set rs=nothing  

conn.close '关闭数据库连接对象 set conn=nothing 

%> 

;charset=gb2312"> <!

--这个META标签可以设置跳转到的页面,0表示0秒,url表示跳转到的页面地址-->

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 调查报告

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1