| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1257 人关注过本帖
标题:求助:设置上传文件路径的疑难问题
只看楼主 加入收藏
zslj
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2008-4-28
收藏
 问题点数:0 回复次数:3 
求助:设置上传文件路径的疑难问题
我在两个不同的网络空间上传文件,遇到了上传路径问题。
A空间必需设置为绝对路径;如“/uploadfile/”
而B空间又必需设置为相对路径。如“../../uploadfile/”
两个空间的上传路径设置如果调换了,上传就不正常,不能读取到上传的文件。
注意:都设置为绝对路径或者相对路径,总有一个空间的上传会出错。
不知出现这种情况的原因何在?
上传文件的位置为:\网站\Editor\editor\upload.asp
请教各位,有没有统一的变通方法解决上传的路径问题。(或者说怎样设置上传路经后使A、B两个空间都适用)

upload.asp源码如下:
---------------------------------------------------------------------
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<%
on error resume next
Server.ScriptTimeOut=5000
%>
<!--#include file="UpLoadClass.asp"-->
<%
if Request.QueryString("action")="upload" then
dim MyRequest,lngUpSize,SavePath
SavePath="../../uploadfile/" '设置上传目录
SavePath=replace(SavePath,"\","/")
Set MyRequest=new UpLoadClass
MyRequest.SavePath=SavePath

'设置允许上传的文件类型
UploadType=trim(Request.QueryString("uploadtype"))
if UploadType="img" then
    MyRequest.FileType="jpg/gif/bmp/png"
elseif UploadType="attach" then
    MyRequest.FileType="rar/zip"
end if

'判断上传目录是否存在,不存在则自动创建
FolderPath=server.MapPath(SavePath)
Set FSO=Server.CreateObject("Scripting.FileSystemObject")
if FSO.FolderExists(FolderPath)=false then
FSO.CreateFolder(FolderPath)
end if
Set FSO=nothing

'取得当前文件所在目录
FileName=Right(Request.Servervariables("Script_Name"),len(Request.Servervariables("Script_Name"))-InstrRev(Request.Servervariables("Script_Name"),"/"))
FileFolder=replace(Request.Servervariables("Script_Name"),FileName,"")

'获取文件地址的根绝对路径
if left(SavePath,1)="/" then
uploadPath=SavePath
else
uploadPath=FileFolder&SavePath
end if

lngUpSize = MyRequest.Open()
  select case MyRequest.error
         case 0
         if UploadType="img" then
             response.Write("<script>window.parent.LoadIMG('"&uploadPath&trim(MyRequest.form("file1"))&"');</script>")
         elseif UploadType="attach" then
             response.Write("<script>window.parent.LoadAttach('"&uploadPath&trim(MyRequest.form("file1"))&"');</script>")
         end if
         case 1
         response.Write("<script>alert('文件过大!');window.parent.$('divProcessing').style.display='none';history.back();</script>")
         case 2
         response.Write("<script>alert('不允许上传该类型的文件!');window.parent.$('divProcessing').style.display='none';history.back();</script>")
         case 3
         response.Write("<script>alert('不允许上传该类型的文件!');window.parent.$('divProcessing').style.display='none';history.back();</script>")
         case else
         response.Write("<script>alert('文件上传出错!');window.parent.$('divProcessing').style.display='none';history.back();</script>")
  end select
end if
%>
---------------------------------------------------------------------

[[it] 本帖最后由 zslj 于 2008-5-1 19:24 编辑 [/it]]
搜索更多相关主题的帖子: 疑难 路径 文件 
2008-05-01 19:14
makebest
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:3
帖 子:658
专家分:962
注 册:2005-3-17
收藏
得分:0 
这个方法可以试一试,把 SavePath 的变量单独放在一个文件中,
在 upload.asp 中引用: <!--#include file="savepath.asp"-->
分别为 A B 两个空间的内容设置不同的值
2008-05-01 21:05
zslj
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2008-4-28
收藏
得分:0 
感谢makebest!感觉这个办法有点欠佳。
[bo]以下是引用 [un]makebest[/un] 在 2008-5-1 21:05 的发言:[/bo]

这个方法可以试一试,把 SavePath 的变量单独放在一个文件中,
在 upload.asp 中引用:
分别为 A B 两个空间的内容设置不同的值


一是SavePath.ASP文件也需做两种变量的设置;
二是如何判别空间需要绝对路径还是相对路径
重要的是第二条,即使在 upload.asp 文件中也能设置变量啊。

问题是如何解决用一种路径设置能够适应两种情况。

[[it] 本帖最后由 zslj 于 2008-5-1 21:55 编辑 [/it]]
2008-05-01 21:47
zslj
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2008-4-28
收藏
得分:0 
从代码分析,在 upload.asp 中设置为“/uploadfile/”应该是可以的。
但是的确在 B 空间使用时出现问题:
上传后只出现了服务器和文件夹的路径,上传的文件看不到了。比如:
http://bbs.bccn.net/uploadfile/
正常的上传后应该是:
http://bbs.bccn.net/uploadfile/abc.jpg

不知为何与网络环境发生了抵触关系。

[[it] 本帖最后由 zslj 于 2008-5-1 23:56 编辑 [/it]]
2008-05-01 23:52
快速回复:求助:设置上传文件路径的疑难问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.044191 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved