请教for each formName in upload.file语句的用法

hellojava 2009-06-25 10:07:45
这下面是asp有组件批量上传图片的一段代码....

	
for each formName in upload.file ''列出所有上传了的文件
set file=upload.file(formName) ''生成一个文件对象
filekzmzz=filekzm(file.FileName)
if filekzmzz="gif" or filekzmzz="jpg" or filekzmzz="jpeg" or filekzmzz="bmp" or filekzmzz="png" then
if file.FileSize>0 then ''如果 FileSize > 0 说明有文件数据
ranNum0=int(5*rnd)+10
iddata0=day(now)&hour(now)&minute(now)&second(now)&ranNum0
file.SaveAs Server.mappath(a&iddata0&file.FileName) ''保存文件

arrayb(piccount)="haijun/"&a&iddata0&file.FileName
picid(piccount)=iddata0&file.FileName
piccount=piccount+1
set file=nothing
end if
end if
next


我想记录上传的文件个数,怎么记录,无论我同时上传多少个图片,那个piccount始终输出的是1,为什么记录不了呢?
...全文
687 20 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
hcccc 2009-08-31
  • 打赏
  • 举报
回复
解决了,在另一张页面 ,
session(piccount)=0
hellojava 2009-06-26
  • 打赏
  • 举报
回复
问题依旧~~
hellojava 2009-06-26
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 chinmo 的回复:]
引用 10 楼 feixueqianer 的回复:
输出是在另外一个页面

VBScript code
response.write session("piccount")


无论我同时上传多少个文件,输出的书永远是1,貌似只循环了一次?


不知道你的具体情况,建议你在当前页面输出piccount的值,看看他的循环过程

要学会自己检测问题
而不是问别人
[/Quote]

谢谢chinmo的教诲!领教了~~
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 feixueqianer 的回复:]
输出是在另外一个页面

VBScript code
response.write session("piccount")




无论我同时上传多少个文件,输出的书永远是1,貌似只循环了一次?
[/Quote]
不知道你的具体情况,建议你在当前页面输出piccount的值,看看他的循环过程

要学会自己检测问题
而不是问别人
天下如山 2009-06-26
  • 打赏
  • 举报
回复
很多组件都有自己的方法的,用他的方法写
天下如山 2009-06-26
  • 打赏
  • 举报
回复
我前段时间用的有组件上传:可以计算文件总数:代码给看下
Dim FormPath,Pic_name
FormPath = "uploadfile/"&Da&"/" ''定义上传路径
Upload_0

Sub Upload_0()
Dim Upload
Dim File,FormName,FileName,FileExt,SaveFile,Up_time,Pic_name,Pic_Desc
Dim CountSize,UseTime

CountSize = 0
Set Upload = Server.CreateObject("DvFile.Upload") ''建立上传对象
Upload.InceptFileType = "jpg,gif,png,bmp,jpeg" ''上传文件类型限制 以 “,” 号分隔
Upload.MaxSize =1024*1024*2 ''限制大小 :-1为无限,单位 B
Upload.Install ''加载上传数据
If Upload.Err > 0 Then ''错误参数
response.Write Upload.Err

''输出错误信息
Select Case Upload.Err
Case 1 : Response.Write Upload.Description ''请先选择你要上传的文件
Case 2 : Response.Write Upload.Description ''文件大小超过了限制 "&Upload.MaxSize/1024&"K 
Case 3 : Response.Write Upload.Description ''非法的上传类型
Case 4 : Response.Write Upload.Description ''所上传的类型受系统限制
Case 5 : Response.Write Upload.Description ''参数有误,上传意外中止
End Select
Response.Write " [ <a href=# onclick=history.go(-1)>重新上传</a> ]"
Exit Sub
Else
'If Upload.Count>1 Then Response.Write "上传个数超过限制" : Exit Sub
'FormPath = Upload.Form("filepath") ''从表单filepath获取上传路径
For Each FormName In Upload.File ''列出所有上传了的文件
Set File = Upload.File(FormName) ''生成一个文件对象
FileExt = File.FileExt ''获取上传文件后缀名
FormPath = FormatPath(FormPath) ''格式化上传路径
FileName = FormatName(FileExt) ''定义文件名
SaveFile = FormPath & FileName
Up_time=Now()

If File.FileSize>0 Then ''如果 FileSize > 0 说明有文件数据
Upload.SaveToFile Server.Mappath(SaveFile),FormName ''保存文件
Upload.FileData(FormName) ''获取单个文件内容数据
End If

Next
Set File=Nothing
Response.Write "共上传"& Upload.Count &"个文件 ;By "& Upload.Version &"<p>"
End If
toury 2009-06-25
  • 打赏
  • 举报
回复
piccount在哪里赋初值了?
最好在循环开始前:
dim piccount
piccount=0

不然的话,arrayb(piccount)="haijun/"&a&iddata0&file.FileName这个地方要出错,后面的piccount就不累加了
  • 打赏
  • 举报
回复
piccount因为你这个不是全局变量吧
你要在这个循环之外定义piccount=0
hellojava 2009-06-25
  • 打赏
  • 举报
回复
顶~~~~~~~
hellojava 2009-06-25
  • 打赏
  • 举报
回复
没有人知道吗?
hellojava 2009-06-25
  • 打赏
  • 举报
回复
up~~~~
toury 2009-06-25
  • 打赏
  • 举报
回复
哦,有使用piccount的地方全部用session(piccount)替换
toury 2009-06-25
  • 打赏
  • 举报
回复
你把piccount=piccount+1
改为
session(piccount)=session(piccount)+1试试呢?
hellojava 2009-06-25
  • 打赏
  • 举报
回复
ding!
hellojava 2009-06-25
  • 打赏
  • 举报
回复
对了了,我批量上传时是通过一个flash传的,然后有个和flash文件配套的update.asp文件,
我考虑是不是这样子通过flash的批量上传时获取不到上传的文件个数的?
hellojava 2009-06-25
  • 打赏
  • 举报
回复
输出是在另外一个页面

response.write session("piccount")


无论我同时上传多少个文件,输出的书永远是1,貌似只循环了一次?
  • 打赏
  • 举报
回复
那你输出是?
hellojava 2009-06-25
  • 打赏
  • 举报
回复

dim oUpFileStream,pici,piccount,arrayb(10),picid(10)
piccount=0
call wenjiansc("..\uploadfiles\")
sub wenjiansc(a)
dim upload,file,formName,iCount,fileurl
if left(a,1)="\" then a=right(a,len(a)-1)
if right(a,1)<>"\" then a=a&"\"
if a="\" then a=""

set upload=new upload_5xSoft ''建立上传对象
for each formName in upload.file ''列出所有上传了的文件
set file=upload.file(formName) ''生成一个文件对象
filekzmzz=filekzm(file.FileName)
if filekzmzz="gif" or filekzmzz="jpg" or filekzmzz="jpeg" or filekzmzz="bmp" or filekzmzz="png" then
if file.FileSize>0 then ''如果 FileSize > 0 说明有文件数据
ranNum0=int(5*rnd)+10
iddata0=day(now)&hour(now)&minute(now)&second(now)&ranNum0
file.SaveAs Server.mappath(a&iddata0&file.FileName) ''保存文件
piccount=piccount+1
arrayb(piccount)="haijun/"&a&iddata0&file.FileName
picid(piccount)=iddata0&file.FileName

set file=nothing
end if
end if
next
session("piccount")=piccount
session("arrayb")=arrayb
session("picid")=picid
set upload=nothing
Response.Write("上传成功!")
end sub
toury 2009-06-25
  • 打赏
  • 举报
回复
把和循环里有关变量的代码贴全一点
hellojava 2009-06-25
  • 打赏
  • 举报
回复
对啊是在循环开始前,是全局的,在循环结束后,我是这样写的
session("piccount")=piccount
然后又在另外一个页面打印输出piccount,piccount输出始终为1,初值为0

28,409

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧