使用AspUpload组件 获取表单数据问题

babo021 2005-06-15 01:45:42
之前开过一贴,但问题还没解决却已无人再回复帮助,现在再开一贴,问题及探讨过程如下:
----------------------------------------
我使用AspUpload组件上传文件,通常是要求将上传文件保存在一个固定的文件夹中,如c:\upfile,但是因为我这里的特殊需要,我希望在不同页面上传的文件保存在不同的文件夹中,如1.asp页面上传的文件保存在c:\upfile\1中,2.asp页面上传的文件保存在c:\upfile\2中,那我就想着把当前页的页码相关参数通过表单提交到上传处理页面UploadScript3.asp中,使保存路径自动做相应的变化,但却发现UploadScript3.asp页面无法使用request.form来获取表单值,用Upload.Form来获取表单值又必须在Upload.Save语句之后,也就是还没有办法在Upload.Save做出保存动作之前将路径名进行动态改变。是不是这样的?该如何解决?搜索了很多帖子,也没找到好的办法,请各位大虾帮助出点子
------------------------------------------
先把数据临时保存到一个目录,然后通过Upload.Form获取参数,最后把你上传的文件移动过去就可以了。
------------------------------------------
ShiningstarHu(Shining_star) 、seraph2大虾:如果通过这三步,具体如何操作?我是初学,请给点跟多提示。我知道前两步就是通过Upload.Save和之后的Upload.Form语句来进行,那第三步如何将临时目录中的文件移到正式目录中?又如何将临时目录删除掉?谢谢。。。
...全文
605 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
babo021 2005-06-24
  • 打赏
  • 举报
回复
特别感谢老虎老大。。。。。
12345_ 2005-06-20
  • 打赏
  • 举报
回复
哈哈!为了工作放了这么多分,应该向你们老板申请报销!
babo021 2005-06-18
  • 打赏
  • 举报
回复
为这问题我总共发了三贴,
http://community.csdn.net/Expert/topic/4085/4085702.xml?temp=.6151087
babo021 2005-06-18
  • 打赏
  • 举报
回复
是啊是啊,我那时候没去试您老这个办法,只试了第二种,呵呵,您老很高手也很兢业,两个方式都很好,还请以后多多帮忙。。。
babo021 2005-06-17
  • 打赏
  • 举报
回复
现在就是采用老虎的办法,“上传然后用FileSystemObject移动”,已经成功将问题解决
只是有些遗憾,感谢此方案似乎不甚完美。
12345_ 2005-06-17
  • 打赏
  • 举报
回复
我第一个例子用querystring应该可以吧,就是用form和querystring同时提交。
babo021 2005-06-16
  • 打赏
  • 举报
回复
好的,谢谢老虎,到目前为止感觉还是您老说的这个方法最为可行了
“上传然后用FileSystemObject移动”
如果有想到其他好办法,请再告诉我。。。
12345_ 2005-06-16
  • 打赏
  • 举报
回复
sorry!我搞错了!move是FileSystemObject的方法,其实还是先上传然后用FileSystemObject移动。
不过应该可行。
12345_ 2005-06-16
  • 打赏
  • 举报
回复
form里的值不能Request,但是querystring可以,可以试试这样
<script language="javascript">
function uploadData(){
frm1.action+='&path='+frm1.sPath.value;
//alert(frm1.action);
frm1.submit();
}
</script>
<%
if Request("action") = "upload" then
sPath = Request("path")
call UploadFunction()
end if
%>
<form name="frm1" action="testup.asp?action=upload" method="post" enctype="multipart/form-data">
<input type="text" name="sPath"><br>
<input type="file" name="txtFile" class="topinput" id="txtFile"><br>
<input type="button" value="上传文件" class="topinput" onclick="uploadData();">
</form>
------------------------------------------------------------
另外,aspupload里有个move方法,不知道是否适用
Set Upload = Server.CreateObject("Persits.Upload.1")
Upload.Save (myPath)
For Each FileObj In Upload.Files
filename = FileObj.Path
Next
Set f1 = fso.GetFile(filename)
For Each Item In Upload.Form
arr(i) = Item.Value
arr(i) = Replace(arr(i), "'", "''")
i = i + 1
Next
f1.Move (myPath & "\" & arr(0) & "\ExcelToSTOCK.xls")
hxyman 2005-06-16
  • 打赏
  • 举报
回复
可以用session来判断
friendlyFour 2005-06-16
  • 打赏
  • 举报
回复
你需要几个上传的目录,就建立几个文件,文件中就是你要上传的路径,这样你就在不同的asp页中引入不同的文件。
12345_ 2005-06-15
  • 打赏
  • 举报
回复
哦!好像是你说的那样,我再想想.
babo021 2005-06-15
  • 打赏
  • 举报
回复
二楼wwwdbs(涓涓溪流)兄:您的代码是否针对fso组件的?我现在是用aspupload组件,所以再请教:aspupload如何实现文件移动?使用aspupload后能否再使用fso进行文件移动操作,就是能否结合aspupload与fso一起来使用?

三楼12345_(上山打老虎) 兄:我在aspupload原代码中看到这么一句说明“' We must call Upload.Save or SaveVirtual before we can use Upload.Form!”这句话的意思是否是指在调用Upload.Save之前无法使用Upload.Form?如果是这样,兄台给出的代码中arr(10)将取不到form域的任何值,因为矩阵赋值前还没进行Upload.Save,是否这么理解?该如何来?

四楼mymyal123(风之森) 兄:我指的"我希望在不同页面如1.asp、2.asp上传的文件保存在不同的文件夹中"是举的特例,我这里的实际要求是希望从页面的表单域中取得一个变量值,通过这个变量值来决定文件保存地址。就是Upload.Save("c:\upload\2") 这个保存地址的1或2我是希望根据表单提交值来决定。按这个思路去做,碰到问题就是在进行Upload.Save文件保存之前无法利用Upload.form读取表单值

感谢各位楼兄的帮忙,希望继续帮忙解决我这个问题,谢谢。。。。
mymyal123 2005-06-15
  • 打赏
  • 举报
回复
楼主,先谢谢你跟我发的控件

=================

你说: "我希望在不同页面上传的文件保存在不同的文件夹中"

意思就是从不同的上传页面上传文件的时候你希望将文件放到不同的目录下面?即从1.asp提交的文件存入c:\1 从2.asp提交的文件存入 c:\2 下.

如果是这样的话,应该很简单的吧.

---------------------
1.asp
<FORM METHOD="POST" ENCTYPE="multipart/form-data" ACTION="UploadScript1.asp">
<INPUT TYPE="FILE" SIZE="40" NAME="FILE1"><BR>
<INPUT TYPE=SUBMIT VALUE="Upload!">
</FORM>
UploadScript1.asp
<%
Set Upload = Server.CreateObject("Persits.Upload")
Count = Upload.Save("c:\upload\1") //改这里
Response.Write Count & " file(s) uploaded to c:\upload"
%>

2.asp
<FORM METHOD="POST" ENCTYPE="multipart/form-data" ACTION="UploadScript2.asp">
<INPUT TYPE="FILE" SIZE="40" NAME="FILE1"><BR>
<INPUT TYPE=SUBMIT VALUE="Upload!">
</FORM>
UploadScript2.asp
<%
Set Upload = Server.CreateObject("Persits.Upload")
Count = Upload.Save("c:\upload\2") //改这里
Response.Write Count & " file(s) uploaded to c:\upload"
%>


是不是这个意思?



12345_ 2005-06-15
  • 打赏
  • 举报
回复
Dim arr(10)
Set Upload = Server.CreateObject("Persits.Upload.1")
myPath = Server.MapPath(imgUpPath)
i = 0
For Each Item In Upload.Form
arr(i) = Item.Value
arr(i) = Replace(arr(i), "'", "''")
i = i + 1
Next
myPath = Server.MapPath(imgUpPath)
Upload.Save (myPath)

form里提交的值可以用这个数组来取得,你试试看行不行。
泉畔人家 2005-06-15
  • 打赏
  • 举报
回复
以下代码请坐参考
uploadtemppath=server.mappath("\upload_temp\")&"\" '临时目录路径
if request("fjtp")<>"" then
fjtp=split(request("fjtp"),";")
for i=0 to UBound(fjtp)
Set fso =server.CreateObject("Scripting.FileSystemObject")
if not fso.FileExists(uploadtemppath&fjtp(i)) then
response.write"所选择的图片没有上传到位,请再试!"
response.end
end if
next
rs("fjtp")=request("fjtp")
end if
if request("fjtp")<>"" then
fjtp=split(request("fjtp"),";")
for i=0 to UBound(fjtp)
Set fso =server.CreateObject("Scripting.FileSystemObject")
temppath=uploadtemppath&fjtp(i)
tppath=Server.Mappath("\files\news\")&"\"&year(rs("news_date"))&"\images\"&rs("news_id")&"$"&fjtp(i) '目标新路径
fso.MoveFile temppath,tppath
next
end if

28,405

社区成员

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

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