用ASP如何上传照片呢?

作者&投稿:初豪 (若有异议请与网页底部的电邮联系)
ASP中上传图片怎么做啊?~

采用无组件下载代码。
upfile.asp





<%
dim upload,file,formName,formPath,iCount,MyFile
set upload=new upload_5xSoft ''建立上传对象

formpath="userdata/" ''得到上传目录

nian=Year(Date)
yue=Month(Date)
ri=Day(Date)
if len(nian)<4 then nian="00"&nian
if len(yue)<2 then yue="0"&yue
if len(ri)<2 then ri="0"&ri

ipinit=""
ip=Request.ServerVariables("REMOTE_ADDR")
tmpip=Split(ip,".")
tmpipb=UBound(tmpip)
' ReDim ThisIP(tmpipb)
for i=0 to tmpipb
ThisIp=tmpip(i)

Do WHile len(ThisIP)<3
ThisIP="0"+ThisIP
loop
ipinit=ipinit+ThisIP
next

'Response.write nian&yue&ri&ipinit
'Response.end

for each formName in upload.file ''列出所有上传了的文件
set file=upload.file(formName) ''生成一个文件对象
if file.FileSize>0 then ''如果 FileSize > 0 说明有文件数据
'MyFile=formPath&File.FileName
'MyFile=File.FileName


shi=Hour(time)
fen=Minute(Time)
Miao=Second(Time)
if len(shi)<2 then shi="0"&shi
if len(fen)<2 then fen="0"&fen
if len(miao)<2 then miao="0"&miao

MyFile=nian&yue&ri&shi&fen&miao&ipinit&".txt"

file.SaveAs Server.mappath(formPath&MyFile) ''保存文件
response.write file.FilePath&"#"&file.FileName&"#"&" ("&file.FileSize&") => "&MyFile&" 成功!"
end if
set file=nothing
next
set upload=nothing ''删除此对象

%>


upload_5xsoft.inc




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="HTTP上传程序 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(13)&Chr(10)
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+10,"""")
mFileName=subString(iFileNameStart+10,iFileNameEnd-iFileNameStart-10)
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 > 127 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 InString0 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 + 65535
If iCode>255 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

上传用控件啊
aspx页


Code页
//提交按钮的点击事件
protected void btnSubmit_Click(object sender, EventArgs e)
{
string virpath="my.jpg";//这是存到服务器上的虚拟路径
string mappath=Server.MapPath(virpath);//转换成服务器上的物理路径
fuImage.PostedFile.SaveAs(mappath);//保存图片

//然后就是把这个路径信息录入到数据库里,我一般都会有个图片表
}

用ASP编写网站应用程序时间长了,难免会遇到各式各样的问题,其中

关于如何上传文件到服务器恐怕是遇见最多的问题了,尤其是上传图片,比如你想要在自己的社区里面实现类似网易虚拟社区提供的“每日一星”的功能,就要提供给网友上传照片的功能。上传图片文件到服务器可以使用各种免费的文件上传组件,使用起来功能虽然很强大,但是由于很多情况下,我们只能使用免费的支持ASP的空间或者租用别人的虚拟空间,对于第一种情况,我们根本就没有可能来使用文件上传组件;至于第二种情况,我们也要付出不少的“银子”才可以。除非你拥有自己的虚拟主机,你就可以随便的在服务器上面安装自己所需要的组件,这种情况对于大多数人来说是可望而不可及的。那我们就没有办法了吗?呵呵,答案是肯定的(当然是肯定的了,要不然我也没法写出这篇文章啊)。下面就让我们一起来使用纯ASP代码来实现图片的上传以及保存到数据库的功能(顺便也实现显示数据库中的图片到网页上的功能)。

首先我们先来熟悉一下将要使用的对象方法。我们用来获取上一个页面传递过来的数据一般是使用Request对象。同样的,我们也可以使用Request对象来获取上传上来的文件数据,使用的方法是Request.BinaryRead()。而我们要从数据库中读出来图片的数据显示到网页上面要用到的方法是:

Request.BinaryWrite()。在我们得到了图片的数据,要保存到数据库中的时候,不可以直接使用Insert语句对数据库进行操作,而是要使用ADO的AppendChunk方法,同样的,读出数据库中的图片数据,要使用GetChunk方法。各个方法的具体语法如下:

* Request.BinaryRead语法:

variant = Request.BinaryRead(count)

参数

variant

返回值保存着从客户端读取到数据。

count

指明要从客户端读取的数据量大小,这个值小于或者等于使用方法

Request.TotalBytes得到的数据量。

* Request.BinaryWrite语法:

Request.BinaryWrite data

参数

data

要写入到客户端浏览器中的数据包。

* Request.TotalBytes语法:

variant = Request.TotalBytes

参数

variant

返回从客户端读取到数据量的字节数。

* AppendChunk语法

将数据追加到大型文本、二进制数据 Field 或 Parameter 对?

object.AppendChunk Data

参数

object Field 或 Parameter 对象

Data 变体型,包含追加到对象中的数据。

说明

使用 Field 或 Parameter 对象的 AppendChunk 方法可将长二进制或字符数据填写到对象中。在系统内存有限的情况下,可以使用 AppendChunk 方法对长整型值进行部分而非全部的操作。

* GetChunk语法

返回大型文本或二进制数据 Field 对象的全部或部分内容 。

variable = field.GetChunk( Size )

返回值

返回变体型。

参数

Size 长整型表达式,等于所要检索的字节或字符数。

说明

使用 Field 对象的 GetChunk 方法检索其部分或全部长二进制或字符数据。在系统内存有限的情况下,可使用 GetChunk 方法处理部分而非全部的长整型值。

GetChunk 调用返回的数据将赋给“变量”。如果 Size 大于剩余的数据,则

GetChunk 仅返回剩余的数据而无需用空白填充“变量”。如果字段为空,则

GetChunk 方法返回 Null。

每个后续的 GetChunk 调用将检索从前一次 GetChunk 调用停止处开始的数据。但是,如果从一个字段检索数据然后在当前记录中设置或读取另一个字段的值,ADO 将认为已从第一个字段中检索出数据。如果在第一个字段上再次调用 GetChunk 方法,ADO 将把调用解释为新的 GetChunk 操作并从记录的起始处开始读取。如果其他 Recordset 对象不是首个 Recordset 对象的副本,则访问其中的字段不会破坏 GetChunk 操作。如果 Field 对象的 Attributes 属性中的 adFldLong 位设置为 True,则可以对该字段使用 GetChunk 方法。如果在 Field 对象上使用 Getchunk 方法时没有当前记录,将产生错误 3021(无当前记录)。接下来,我们就要来设计我们的数据库了,作为测试我们的数据库结构如下(Access97):

可以用FSO组件,也可以下载一下无组件上传类。

简单的事


asp图片上传,地址传送到文本框
加在你文件传完的时候: alert('上传成功!');parent.document.all("表单选项名").value='<%=图片文件名%>'

asp 通过手机拍照将图片上传至服务器?
陆网站,然后点击按钮,调用手机摄像头拍照,然后将照片上传

有关ASP论坛的上传照片问题
'inc\/upfile.asp' 找不到这个文件,你看看文件路径对不对···如果inc文件夹在根目录下你就写成'\/inc\/upfile.asp'

asp怎样上传文件到指定的文件夹,并在access中记录路径
我自己做了一个网站,想上传文件到指定的文件夹,并在access中记录路径,在asp页面中显示所上传的软件,点击直接下载功能。注意:是上传文件,不是图片。文件包括exe、rar、zip、doc、... 我自己做了一个网站,想上传文件到指定的文件夹,并在access中记录路径,在asp页面中显示所上传的软件,点击直接下载功能。注意:是...

在asp.net中,想在页面上放置一个一寸照片,需要用什么控件
asp.net控件:<asp:Image ID="img" runat="server" ImageUrl="*.jgp"\/> asp.net控件:<asp:ImageButton ID="img" runat="server" ImageUrl="*.jgp"\/> html标记: 都可以。

在C#中,如何上传图片?将图片传到指定的文件夹下,数据库里只保存图片名称...
aspx页面上放一个<asp:FileUpload ID="FileUpload1" runat="server" \/>和一个<asp:Button ID="Button7" runat="server" Text="上传照片" Height="20px" onclick="Button7_Click" \/> 这个aspx的cs代码里写关于Button7_Click的代码如下 string fileleixing = null;fileleixing = System.IO....

关于asp.net 用FileUpload控件和gridview做照片相册的问题
i = 0; i < allowedExtensions.Length; i++){ if (fileExtension == allowedExtensions[i]){ fileOK = true;} } } if (fileOK){ try { FileUpload1.PostedFile.SaveAs(path + FileUpload1.FileName);} catch { Response.Write("alert('图片上传失败!')");} } ...

asp后台不能上传照片,无提示,图标没反应!文本可以,在线等高手赐教...
你这是webeditor在线编辑器,你去它的后台设置了图片上传路径了吗?指定图片上传到什么地方吗?

怎么在电脑上面上传照片?
1、电脑登录微信。2、然后打开手机微信,打开文件传输助手。3、打开文件传输助手后,点击右侧的+图标。4、然后点击相册。5、打开相册后,选中图片,然后点击发送。6、点击发送后,打开电脑微信文件传输助手,直接把图片拖动到桌面就可以了。注意事项:1、在微信聊天过程中,一旦涉及到财产安全问题,一定要第...

asp 显示上传的照片
调试一下:把rs.open "select * from tab_manager where username='"&username&"' order by addtime desc",conn,1,1 这一句,改成:sql="select * from tab_manager where username='"&username&"' order by addtime desc"response.write sql '加这一句输出查看一下 sql语句 'rs.open sql,...

贵阳市15670524079: asp,最简单的上传图片
茶熊紫舒: 1.如果服务器装了文件上传组件,可查阅一下该组件的相关属性和方法,不过现在很多服务器空间都不支持这类组件.暂不在这里讨论. 2.若服务器不支持文件上传组件,可以考虑自己写个无组件上传程序,网上有一个"化境无组件上传"比较经...

贵阳市15670524079: ASP中如何实现图片的上传 -
茶熊紫舒: 你在文件里找到login,后缀改成htm 登录名一般是admin 进到后台就可以添加本地图片

贵阳市15670524079: 在ASP中如何实现上传图片? -
茶熊紫舒: 文件一upload_5xsoft.inc dim Data_5xsoft Class upload_5xsoft dim objForm,objFile,Version Public function Form(strForm) strForm=lcas...

贵阳市15670524079: 在ASP中,如何实现图片的上传,用数据库不用 -
茶熊紫舒: 一种方法:用组件上传.百度一下“ASP上传组件”应该能找到不少,用法也很简单,网上也有说明文件.还有一种方法是不用组件,用fso对象.如果你要记录这些数据,并在站点上显示,需要用到数据库,可以记录文件路径,也可以记录文件.SQL和Access数据库都有一个数据类型用来存储字段,可以查看SQL帮助文件找到.

贵阳市15670524079: 怎么把图片上传到ASP空间里去?
茶熊紫舒: 用FTP上传工具如fxp上传到网站主目录里.有的是WEB 有的是WWWROOT.然后在你要显示的页面加入html代码显示图片可以用<img src="https://img.sogoucdn.com/v2/thumb/?appid=200698&url=%E5%9B%BE%E7%89%87%E8%B7%AF%E5%BE%84">来显示. 也可以直接打开图片的地址来显示图片. 如:你的网址为:http://www.myweb.com/ 你的图片 1.jpg 传在wwwroot目录里.就提交地址 http://www.myweb.com/1.jpg 就直接显示图片

贵阳市15670524079: ASP的图片是怎样上传的??? -
茶熊紫舒: asp图片有两种上传方式一种是无组件上传把图片直接传导网站空间程序获得文件名存储一种是组件上传把图片以二进制的方式存在数据库中然后按字节读出来.这些组件网上比较多如果找不到可以找我.

贵阳市15670524079: asp上传图片
茶熊紫舒: 方式1:图片文件名不要用动态生成的随机名称,改用固定的名字,这样先按照图片名称删除原始图片,然后再上传新的图片. 方式2:继续使用随机名称,上传新图片前,从数据库中读取到原始图片的名字,然后删除,然后再上传新图片

贵阳市15670524079: 急!!asp怎么上传图片到数据库,并显示到网页中 -
茶熊紫舒: 你到网上搜关键字[林子图片管理],他就是用的你说的这种方法,完整的,可以参考,

贵阳市15670524079: asp无组件上传图片 -
茶熊紫舒: <% strFileName = Request("file") '得到前一页提交来的文件地址值 Set objStream = Server.CreateObject("ADODB.Stream") objStream.Type = 1 ' adTypeBinary objStream.Open objStream.LoadFromFile strFileName objStream.SaveToFile Server.MapPath("abc.jpg"),2 '保存到当前ASP文件同目录下,名字为abc.jpg objStream.Close%> 够简单吧! 呵呵,不成功的话,给我留言,我帮你看看!偶也是新手,但偶用成功着呢!

贵阳市15670524079: asp.net如何实现图片上传?附上代码,谢谢!! -
茶熊紫舒: /// 创建文件及路径参数 ///public void CreateMdAndFilePaht(HttpPostedFile hpf) { //string wordMd = Request.PhysicalApplicationPath.Replace(HttpRuntime.AppDomainAppVirtualPath.Replace("/", "") + "\\", ""); string upPaht = "upload...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网