【shopwt 源码】【vs code源码编辑】【黄金火箭战法源码】asp 文件上传源码_asp文件上传代码

时间:2024-11-20 20:36:56 编辑:燕窝塑源码 来源:greenplum源码阅读

1.asp.net信息审核才能上传成功详细代码代码?
2.关于ASP照片的上传
3.求ASP上传代码(上传到指定文件夹,文文件同时获取路径保存到数据库中)

asp 文件上传源码_asp文件上传代码

asp.net信息审核才能上传成功详细代码代码?

       ASP.NET 的信息审核上传功能通常包含以下步骤:

       用户在前端页面填写信息并上传文件;

       后端服务器接收到用户上传的信息和文件;

       服务器对上传的信息和文件进行审核;

       如果审核通过,将信息和文件存储到数据库或服务器上;否则,传源返回错误信息给用户。上传

       以下是代码shopwt 源码一个简单的 ASP.NET 信息审核上传代码示例:

       前端页面(index.aspx):

       html

       Copy code

       <!DOCTYPE html>

       <html>

       <head>

        <title>信息审核上传</title>

       </head>

       <body>

        <form action="upload.aspx" method="post" enctype="multipart/form-data">

        <label for="name">姓名:</label>

        <input type="text" name="name" id="name" required><br>

        <label for="file">上传文件:</label>

        <input type="file" name="file" id="file" required><br>

        <input type="submit" value="上传">

        </form>

       </body>

       </html>

       后端代码(upload.aspx.cs):

       c#

       Copy code

       using System;

       using System.IO;

       public partial class upload : System.Web.UI.Page

       {

        protected void Page_Load(object sender, EventArgs e)

        {

        // 接收上传的文件和信息

        string name = Request.Form["name"];

        HttpPostedFile file = Request.Files["file"];

        // 对上传的文件进行审核

        if (file != null && file.ContentLength > 0)

        {

        string fileName = Path.GetFileName(file.FileName);

        string fileExtension = Path.GetExtension(fileName);

        if (fileExtension == ".jpg" || fileExtension == ".png" || fileExtension == ".pdf")

        {

        // 文件审核通过,将信息和文件存储到服务器上

        string savePath = Server.MapPath("~/uploads/") + fileName;

        file.SaveAs(savePath);

        Response.Write("<p>上传成功!文文件</p>");

        }

        else

        {

        // 文件审核不通过,传源vs code源码编辑返回错误信息

        Response.Write("<p>上传的上传文件必须是 jpg、png 或 pdf 格式。代码</p>");

        }

        }

        else

        {

        // 文件为空,文文件返回错误信息

        Response.Write("<p>请选择要上传的传源文件。</p>");

        }

        }

       在这个示例中,上传用户填写姓名并选择要上传的代码文件,点击“上传”按钮后,文文件黄金火箭战法源码前端页面将表单数据和文件一起提交到 upload.aspx 页面进行处理。传源后端代码首先接收表单数据和文件,上传并对文件进行审核,java截图软件源码如果审核通过就将文件存储到服务器上,否则返回错误信息给用户。请注意,iterm2 源码在实际应用中,还需要加入更多的安全措施来防止文件上传漏洞和信息泄露等安全问题。

关于ASP照片的上传

       å®žä¾‹åˆ†æž

       ä½†æ˜¯ï¼Œåˆ©ç”¨ASP技术直接实现文件上传功能则只需编程者掌握单一的ASP技术即可,

       å¤§å¤§é™ä½Žäº†ç¼–程难度。下面我们将通过一个实例来介绍如何使用该方法。

       1、文件上传表单

       é¦–先需要编写一个能提供文件上传功能的表单,程序如下所示:

       ï¼œForm action="upload.asp" method=post enctype="multipart/form-data">

       ä¸Šä¼ æ–‡ä»¶ï¼šï¼œInput type=file name=file1><br>

       ï¼œinput type=submit name=upload value="上传">

       ï¼œ/form>

       å…¶ä¸­ï¼Œenctype参数用来设置表单的MIME编码方式,在进行文件(或同时包含文本框)上传时,必须将其属性设置为"multipart/form-data";upload.asp是服务器端对接收到的二进制文件流进行处理的ASP程序,在本文的后面将陆续介绍其内容。

       2、上传文件格式分析

       åœ¨å¤„理文件之前,我们要先了解上传的文件的具体格式,通过编写下面一段简单的ASP程序就可以查看其二进制代码:

       ï¼œ%

       filesize=Request.TotalBytes '获得上传文件的大小

       filedata=Request.BinaryRead(filesize) '获得上传文件的二进制数据

       Response.BinaryWrite filedata '在浏览器上显示二进制数据

       %>

       åˆ†æžæµè§ˆå™¨ä¸Šæ˜¾ç¤ºçš„上传文件的二进制代码,发现代码包括四个部分(若同时上传多个文件或文本框,则代码按上传的先后次序排列,格式相同),每一部分的内容是用回车换行符号来进行分隔的:

       1)第一部分(起始标志)

       -----------------------------7dbd4

       2)第二部分(文件说明)

       Content-Disposition: form-data; name="file1"; filename="C:\Documents and Settings\Administrator\My Documents\Invitation.doc" Content-Type: application/msword

       åœ¨æ­¤ï¼Œæˆ‘们可以获得上传文件的文件名称及绝对路径,也可以获得文件类型。这些信息是正确保存文件所不可缺少的。

       3)第三部分(文件内容)

       å³æ–‡ä»¶çš„二进制内容,略。

       4)第四部分(结束标志)

       -----------------------------7dbd4

       ç»“合第一部分和第四部分的内容来看,"-----------------------------7dbd4"(每次上传,数值都不一样)起到了分割符的作用,它标志着一段数据(当有多个上传内容时)的开始和结束。从保存文件所需要的信息来讲,我们首先需要从第二部分数据的"filename"中获得文件名称,然后需要正确定位文件的起始位置,最后利用ASP技术将二进制文件用本来的文件名保存即可。若同时上传多个内容(如多个文本框和文件),也是按同样的方法处理,每部分的内容都包含在分割符之中,只是文本框和文件的表现形式稍有不同,这可以通过具体分析其二进制代码来了解。

       3、利用ASP技术实现文件存储

       ä¸Šä¼ æ–‡ä»¶ä»£ç çš„处理

       1) 获得分割符代码

       ä»Žä¸Šé¢çš„分析我们已经知道,分割符起到了分割多个数据段(包括文本框和各种类型的文件)的重要作用。前面已经分析过,分割符出现在第一个回车换行符号前。因此,通过下面这段程序就可获得分割符代码:

       ï¼œ%

       newline=chrB() & chrB() 'newline表示二进制的回车符

       filesize=Request.TotalBytes 'filesize是上传文件的大小

       filedata=Request.BinaryRead(filesize) 'filedata是上传文件的二进制数据

       divider=leftB(filedata,clng(instrb(filedata,newline))-1) 'divider是分割符

       %>

       æ³¨ï¼šå› ä¸ºè¿™é‡Œå¤„理的都是二进制字节码,因此,所有的函数都是使用它的二进制版本,加了"b "。

       2) 获得文件(或文本框)内容

       (1) 预备函数(将二进制串转化成字符串)

       ä¸Šä¼ æ–‡ä»¶çš„内容不需要经过二进制向字符串的转换过程,直接保存就可。但是,若需提取文本框内容或文件的名称,就必须进行转换。因此,需要编写一个通用的,并且适用于汉字的转换函数。以下是该函数代码:

       Function BtoS (bstr)

       If not Is Null (bstr) Then

       for i = 0 to lenb(bstr) - 1

       bchr = midb(bstr,i+1,1)

       If ascb(bchr)> Then '汉字是双字节,得两个字符一起处理

       temp = temp&chr(ascw(midb(bstr, i+2, 1)&bchr))

       i = i+1

       Else

       temp = temp&chr(ascb(bchr))

       End If

       next

       End If

       BtoS = temp

       End Function

       (2) 获得文件(或文本框)内容

       åœ¨å®žé™…çš„WEB应用中,上传操作可能涉及多项内容,如多个文本框、多个文件等等。文件和文本框很好区分,文件的数据中包含了"filename="字串。因此,我们写了如下的通用函数,既可用于提取文件内容,又可提取文本框内容(需进行二进制转换):

       Function getdata(byval data, byval divider, final) 'data表示二进制串;divider表示分割符;final表示数据的结束位置

       filename=chrb()&chrb()&chrb()&chrb()&chrb()&chrb()&chrb()&chrb()&chrb()&chrb() '字符串"filename"的二进制表示

       bncrlf=chrb()&chrb() '二进制的回车符

       startpos = instrb(data,divider)+lenb(divider)+lenb(bncrlf) ' 开始位置

       endpos = instrb(startpos,data, divider)-lenb(bncrlf) '结束位置

       part1 = midb(data, startpos, endpos-startpos) '两个分割符之间的内容

       firstline = midb(part1, 1, instrb(part1, bncrlf)-1) ' 内容之前的说明段

       If (instrb(firstline,filename)=0) Then '若为文本框,获得文本框字符串内容

       stemp=midb(part1,instrb(part1,bncrlf&bncrlf)+lenb(bncrlf&bncrlf),lenb(part1)-instrb(part1,bncrlf&bncrlf)+lenb(bncrlf&bncrlf))

       getdata=BtoS(stemp)

       Else '若为文件,获得文件二进制内容

       Getdata=midb (part1, instrb (part1, bncrlf&bncrlf)+lenb (bncrlf&bncrlf), lenb (part1)

       -instrb(part1,bncrlf&bncrlf)+lenb(bncrlf&bncrlf))

       End If

       Final=endpos

       End function

       åœ¨ç¨‹åºä¸­ç›´æŽ¥è°ƒç”¨è¯¥å‡½æ•°å°±å¯èŽ·å¾—所需文件(或文本框)内容,如下所示:

       ï¼œ%

       Content=getdata (data, divider, position)

       %>

       3) 获得文件名称

       å‰é¢å·²ç»åˆ†æžè¿‡äº†ï¼Œä¸Šä¼ æ–‡ä»¶æ•°æ®æµçš„"filename="字段里包含了文件的名称和绝对路 径。一般来说,我们只需提取出路径中的文件名即可,以下是程序代码:

       ï¼œ%

       namepos=instrrev(B2S(firstline),chr()) 'firstline即上面获得的说明部分数据,chr()

       è¡¨ç¤º"/"

       filename=midb(firstline,namepos+1,lenb(firstline)-namepos-1) '获得文件名称

       %>

       åˆ©ç”¨ASP直接实现文件上传功能

       ä¼ ç»Ÿçš„ASP程序员只能利用FILESYSTEMOBJECT对象对文本文件(.txt)进行移动、复制、删除等操作,若需处理二进制对象,则不得不采用本文前面介绍的那些方法来实现。但是,现在ASP中的ADO.STREAM对象可以同时操作文本对象和二进制对象(可以在/data下载),利用它就可以在ASP中直接实现文件上传功能。下面,我们就介绍其实现过程。

       1)打开STREAM对象

       å¯¹äºŽSREAM对象而言,若要进行文件的保存,则必须是将该对象的全部内容进行保存。因此,我们必须要创建两个(或多个)STREAM对象,其中一个为源数据流,即接收初始的二进制数据;另一个为目的数据流,即接收来自经源数据流处理后的数据,并最终保存为所需的文件。

       ï¼œ%

       set str=server.CreateObject("ADODB.Stream") 'str为源数据流

       str.Mode=3 '设置打开模式,3为可读可写

       str.Type=1 '设置数据类型,1为二进制数据

       str.Open

       set desc=server.CreateObject("ADODB.Stream") 'desc为目标数据流

       desc.Mode=3

       Desc.Type=1

       desc.Open

       %>

       2)STEAM对象间内容的复制

       åœ¨è¯¥éƒ¨åˆ†ï¼Œå¿…须在源数据流中定位文件开始的位置,并且求出文件内容的长度,才能将文件正确的复制到目的数据流中,并且保存文件,程序代码如下:

       ï¼œ%

       formdata=Request.BinaryRead(Request.TotalBytes) 'formdata为上传的所有内容

       str.Write formdata ' 赋值源数据流

       str.position=count-lenb(result)-2 'position指出文件的开始位置

       str.copyto desc, lenb(filecotent) 'lenb(filecontent)表示文件的长度

       desc.SaveToFile fullpath,2 '以fullpath指定的路径及名称保存文件

       %>

       3)关闭STEAM对象

       ç¼–程完成后,应关闭并释放STEAM对象,如下所示:

       ï¼œ%

       Desc. Close

       Set desc=nothing

       Str. Close

       Set STR=nothing

       %>

       æ€»ç»“

       æœ¬æ–‡ç»™å‡ºäº†åˆ©ç”¨ASP直接实现文件上传的方法,在本单位自行开发的信息管理系统中得到了很好的应用。实践证明:与传统的几种文件上传方法相比,该方法更简便、更高效。

求ASP上传代码(上传到指定文件夹,同时获取路径保存到数据库中)

       上传界面:

       <table width="%" border="0" align="center" cellpadding="3" cellspacing="0" class="border">

        <form name="form1" method="post" action="upfiles.asp" enctype="multipart/form-data">

        <tr>

        <td height="" valign="middle" align="center" colspan="2" class="Title"><strong>批量上传产品</strong></td>

        </tr>

       <form name="form1" method="post" action="upfiles.asp" enctype="multipart/form-data">

       <tr class=CommonListTitle height="" bgcolor="#eeeeee">

       <td height="" align="center" valign="middle" class="tdbg"> 文件上传

       <input type="hidden" name="act" value="upload">

       (提交后请稍等!)</td>

       </tr>

       <tr c>

       <td height="" align="center" valign="middle" class="tdbg">

       <script language="javascript">

        function setid()

        {

        str='<br>';

        if(!window.form1.upcount.value)

        window.form1.upcount.value=1;

        for(i=1;i<=window.form1.upcount.value;i++)

        str+='文件'+i+':<input type="file" name="file'+i+'" style="width:"><br>';

        window.upid.innerHTML=str+'<br>';

        }

        </script>

       <li> 上传个数:

       <input name="upcount" type="text" value="1" size="">

       <input name="Button" type="button" class="button" onClick="setid();" value="· 设定 ·">

       </li>

       </td>

       </tr>

       <tr bgcolor="#eeeeee">

       <td align="center" valign="middle" class="tdbg" id="upid"> 文件1:

       <input type="file" name="file1" style="width:" value=""></td>

       </tr>

       <tr bgcolor="#eeeeee">

       <td height="" align="center" valign="middle" class="tdbg">

       <input name="Submit" type="submit" class="button" value="· 提交 ·">

       <input name="Submit2" type="reset" class="button" value="· 重执 ·"></td>

       </tr>

       </form>

       </table>

       upfiles.asp 上传结果:

       <%

       dim conn,mypath

       set conn=server.createobject("adodb.connection")

       mypath=server.mappath("../../database/global.asa") '建立数据库连接.

       conn.open "provider=microsoft.jet.oledb.4.0;data source=" & mypath

       %>

       <!--#include FILE="upload_5xsoft.inc"-->

       <html>

       <head>

       <title>photo</title>

       <link href="../style/style.css" rel="stylesheet" type="text/css">

       <meta http-equiv="Content-Type" content="text/html; charset=gb">

       </head>

       <body>

       <table align="center" cellpadding="4" cellspacing="1" class="toptable grid" border="1"><tr class=CommonListTitle height="">

       <td>上传结果</td>

       </tr>

       <tr class="CommonListCell">

       <td>

       <%

       dim upload,file,formName,formPath,iCount,Photo_Beizhu,upcount

       set upload=new upload_5xSoft ''建立上传对象

       response.write upload.Version&"<br><br>" ''显示上传类的版本

        formPath="../images/"

       iCount=0

       for each formName in upload.file ''列出所有上传了的文件

        set file=upload.file(formName) ''生成一个文件对象

        if file.FileSize>0 then ''如果 FileSize > 0 说明有文件数据

        file.SaveAs Server.mappath(formPath&file.FileName) ''保存文件

       '录入数据库

        response.write file.FilePath&file.FileName&" ("&file.FileSize&") => "&formPath&File.FileName&" 成功!<br>"

        iCount=iCount+1

        end if

        set file=nothing

       next

       set upload=nothing ''删除此对象

       Htmend iCount&" 个文件上传成功!"

       sub HtmEnd(Msg)

        set upload=nothing

        response.write "<br>"&Msg&" [<a href=""javascript:history.back();"">RETURN</a>]"

       end sub

       %></td>

       </tr>

       </table>

       </body>

       </html>

       upload_5xsoft.inc文件:

       <SCRIPT RUNAT=SERVER LANGUAGE=VBSCRIPT>

       '''''''''''''''''''''''''''''''''''''''''''''''''

       '

       '请保留此信息

       '

       '''''''''''''''''''''''''''''''''''''''''''''''''

       dim upfile_5xSoft_Stream

       Class upload_5xSoft

       dim Form,File,Version

       Private Sub Class_Initialize

       dim iStart,iFileNameStart,iFileNameEnd,iEnd,vbEnter,iFormStart,iFormEnd,theFile

       dim strDiv,mFormName,mFormValue,mFileName,mFileSize,mFilePath,iDivLen,mStr

       Version="上传程序 Version 1.0"

       if Request.TotalBytes<1 then Exit Sub

       set Form=CreateObject("Scripting.Dictionary")

       set File=CreateObject("Scripting.Dictionary")

       set upfile_5xSoft_Stream=CreateObject("Adodb.Stream")

       upfile_5xSoft_Stream.mode=3

       upfile_5xSoft_Stream.type=1

       upfile_5xSoft_Stream.open

       upfile_5xSoft_Stream.write Request.BinaryRead(Request.TotalBytes)

       vbEnter=Chr()&Chr()

       iDivLen=inString(1,vbEnter)+1

       strDiv=subString(1,iDivLen)

       iFormStart=iDivLen

       iFormEnd=inString(iformStart,strDiv)-1

       while iFormStart <iFormEnd

        iStart=inString(iFormStart,"name=""")

        iEnd=inString(iStart+6,"""")

        mFormName=subString(iStart+6,iEnd-iStart-6)

        iFileNameStart=inString(iEnd+1,"filename=""")

        if iFileNameStart>0 and iFileNameStart<iFormEnd then

        iFileNameEnd=inString(iFileNameStart+,"""")

        mFileName=subString(iFileNameStart+,iFileNameEnd-iFileNameStart-)

        iStart=inString(iFileNameEnd+1,vbEnter&vbEnter)

        iEnd=inString(iStart+4,vbEnter&strDiv)

        if iEnd>iStart then

        mFileSize=iEnd-iStart-4

        else

        mFileSize=0

        end if

        set theFile=new FileInfo

        theFile.FileName=getFileName(mFileName)

        theFile.FilePath=getFilePath(mFileName)

        theFile.FileSize=mFileSize

        theFile.FileStart=iStart+4

        theFile.FormName=FormName

        file.add mFormName,theFile

        else

        iStart=inString(iEnd+1,vbEnter&vbEnter)

        iEnd=inString(iStart+4,vbEnter&strDiv)

        if iEnd>iStart then

        mFormValue=subString(iStart+4,iEnd-iStart-4)

        else

        mFormValue=""

        end if

        form.Add mFormName,mFormValue

        end if

        iFormStart=iformEnd+iDivLen

        iFormEnd=inString(iformStart,strDiv)-1

       wend

       End Sub

       Private Function subString(theStart,theLen)

        dim i,c,stemp

        upfile_5xSoft_Stream.Position=theStart-1

        stemp=""

        for i=1 to theLen

        if upfile_5xSoft_Stream.EOS then Exit for

        c=ascB(upfile_5xSoft_Stream.Read(1))

        If c > Then

        if upfile_5xSoft_Stream.EOS then Exit for

        stemp=stemp&Chr(AscW(ChrB(AscB(upfile_5xSoft_Stream.Read(1)))&ChrB(c)))

        i=i+1

        else

        stemp=stemp&Chr(c)

        End If

        Next

        subString=stemp

       End function

       Private Function inString(theStart,varStr)

        dim i,j,bt,theLen,str

        InString=0

        Str=toByte(varStr)

        theLen=LenB(Str)

        for i=theStart to upfile_5xSoft_Stream.Size-theLen

        if i>upfile_5xSoft_Stream.size then exit Function

        upfile_5xSoft_Stream.Position=i-1

        if AscB(upfile_5xSoft_Stream.Read(1))=AscB(midB(Str,1)) then

        InString=i

        for j=2 to theLen

        if upfile_5xSoft_Stream.EOS then

        inString=0

        Exit for

        end if

        if AscB(upfile_5xSoft_Stream.Read(1))<>AscB(MidB(Str,j,1)) then

        InString=0

        Exit For

        end if

        next

        if InString<>0 then Exit Function

        end if

        next

       End Function

       Private Sub Class_Terminate

        form.RemoveAll

        file.RemoveAll

        set form=nothing

        set file=nothing

        upfile_5xSoft_Stream.close

        set upfile_5xSoft_Stream=nothing

       End Sub

       Private function GetFilePath(FullPath)

        If FullPath <> "" Then

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

        Else

        GetFilePath = ""

        End If

        End function

        Private function GetFileName(FullPath)

        If FullPath <> "" Then

        GetFileName = mid(FullPath,InStrRev(FullPath, "\")+1)

        Else

        GetFileName = ""

        End If

        End function

        Private function toByte(Str)

        dim i,iCode,c,iLow,iHigh

        toByte=""

        For i=1 To Len(Str)

        c=mid(Str,i,1)

        iCode =Asc(c)

        If iCode<0 Then iCode = iCode +

        If iCode> Then

        iLow = Left(Hex(Asc(c)),2)

        iHigh =Right(Hex(Asc(c)),2)

        toByte = toByte & chrB("&H"&iLow) & chrB("&H"&iHigh)

        Else

        toByte = toByte & chrB(AscB(c))

        End If

        Next

        End function

       End Class

       Class FileInfo

        dim FormName,FileName,FilePath,FileSize,FileStart

        Private Sub Class_Initialize

        FileName = ""

        FilePath = ""

        FileSize = 0

        FileStart= 0

        FormName = ""

        End Sub

        Public function SaveAs(FullPath)

        dim dr,ErrorChar,i

        SaveAs=1

        if trim(fullpath)="" or FileSize=0 or FileStart=0 or FileName="" then exit function

        if FileStart=0 or right(fullpath,1)="/" then exit function

        set dr=CreateObject("Adodb.Stream")

        dr.Mode=3

        dr.Type=1

        dr.Open

        upfile_5xSoft_Stream.position=FileStart-1

        upfile_5xSoft_Stream.copyto dr,FileSize

        dr.SaveToFile FullPath,2

        dr.Close

        set dr=nothing

        SaveAs=0

        end function

       End Class

       </SCRIPT>

       在upfiles.asp文件下加保存到数据库的代码就可以了