注册 登录
编程论坛 ASP技术论坛

求高手帮忙急,按月份自动创建上传文件夹程序有错误,求解?万分感谢,急!!!

hhhcmp 发布于 2010-11-16 13:21, 690 次点击
'按月份自动明名上传文件夹,需要FSO组件支持。
Private Function CreatePath()
    Dim objFSO,uploaderPath,TempPath,m

    MyMonth = Month(Now())
    MyDay = Day(Now())
    IF Len(MyMonth) = 1 Then MyMonth = "0"&MyMonth
    IF Len(MyDay) = 1 Then MyDay = "0"&MyDay
    uploaderPath=year(now)&"-"&MyMonth    '以年月创建上传文件夹,格式:2003-8
   
    TempPath = Array(Server.MapPath(Config.ImagePath(0)&uploaderPath&"/"&MyDay),_
                     Server.MapPath(Config.ImagePath(0)&uploaderPath),_
                     Server.MapPath(Config.ImagePath(1)&uploaderPath&"/"&MyDay),_
                     Server.MapPath(Config.ImagePath(1)&uploaderPath),_
                     Server.MapPath(Config.ImagePath(2)&uploaderPath&"/"&MyDay),_
                     Server.MapPath(Config.ImagePath(2)&uploaderPath))

    Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
    With objFSO
        For m = 0 To Ubound(TempPath) Step 2
            If Not .FolderExists(TempPath(m)) Then
                If Not .FolderExists(TempPath(m+1)) Then
                    .CreateFolder TempPath(m+1)     //提示这行有错误
                End If
                .CreateFolder TempPath(m)
            End If
        Next
    End With
    If Err.Number = 0 Then
        CreatePath=uploaderPath&"/"&MyDay&"/"
    Else
        CreatePath=""
    End If
    Set objFSO = nothing
End Function


[ 本帖最后由 hhhcmp 于 2010-11-16 14:12 编辑 ]
8 回复
#2
gupiao1752010-11-16 15:30
错误提示是什么呢?

先试改几个代码看看:
 把
  If Not .FolderExists(TempPath(m)) Then
                If Not .FolderExists(TempPath(m+1)) Then
                    .CreateFolder TempPath(m+1)     //提示这行有错误
                End If
                .CreateFolder TempPath(m)
            End If
改为:
   If Not .FolderExists(TempPath(m)) Then
                If Not .FolderExists(TempPath(m+1)) Then
                    .CreateFolder(server.mappath(TempPath(m+1)))     //提示这行有错误
                End If
                .CreateFolder(server.mappath(TempPath(m)))
            End If

注意细节,别搞混了。


#3
gupiao1752010-11-16 15:31
ASP的注释是一个',不是//,这是JS的语法!,不会说问题出在这里了吧!
#4
hhhcmp2010-11-16 16:43
回复 3楼 gupiao175
//这个是我后加上的,说明用的
#5
hhhcmp2010-11-16 16:47
回复 2楼 gupiao175
Microsoft VBScript runtime 错误 '800a004c'

Path not found

#6
hhhcmp2010-11-16 16:51
回复 2楼 gupiao175
Server.MapPath(), ASP 0172 (0x80004005)
MapPath 方法的路径参数必须是一个虚拟路径。使用的路径是实际路径。

改了之后还是错误
#7
gupiao1752010-11-16 17:10

请认真再检查一下路径,把路径改成相对或跟目录的形式试试。一种不行就换另外一种,观察错误提示有何改变?
#8
gupiao1752010-11-16 17:12
Server.MapPath(Config.ImagePath(0)&uploaderPath),_里面的Config.ImagePath(0)这个是什么,输出来看下,该路径是否为相对的,是否真实存在这个文件夹?
1