【问题标题】:ASP Upload Component - Classic ASPASP 上传组件 - 经典 ASP
【发布时间】:2024-01-19 09:11:01
【问题描述】:

我刚刚将一个站点从专用服务器转移到一个 GoDaddy 共享主机帐户,并且刚刚遇到了很多问题!一种是使用 ASP 上传。

在 Classic ASP 中,这是我通常将文件上传到我的文件夹的操作:

Set upload = Server.CreateObject("Persits.Upload")
uploadPath = Server.MapPath("../../files/photos/"&token_&"/")
upload.IgnoreNoPost = True
upload.Save(uploadPath)
Set upload = Nothing

但自从搬到 GoDaddy 后,我收到了这条令人讨厌的消息:

This feature has been disabled by the system administrator. Use SaveVirtual instead.

我继续查看 ASP Upload 的网站文档,但找不到 SaveVirtual,只有 SaveAsVirtual,这是我无法解决的问题。

我尝试使用 SaveAsVirtual,但它抛出了一个错误,指出我正在使用物理路径,我应该使用虚拟路径!我真的不明白这一点,希望有人能把我说清楚。我的网站现在被认为已损坏并且处于离线状态,请帮助。

这是我在物理/虚拟路径错误之前尝试过的:

Set upload = Server.CreateObject("Persits.Upload")
uploadPath = Server.MapPath("../../files/photos/"&token_&"/")
upload.IgnoreNoPost = True
upload.SaveAsVirtual(uploadPath)
Set upload = Nothing

【问题讨论】:

    标签: file-upload asp-classic


    【解决方案1】:

    根据docs,方法命名为SaveVirtual。它会为您进行Server.MapPath 转换。

    那么,试试吧:

    Set upload = Server.CreateObject("Persits.Upload")
    uploadPath = "../../files/photos/"&token_&"/"
    upload.IgnoreNoPost = True
    upload.SaveVirtual(uploadPath)
    Set upload = Nothing 
    

    【讨论】:

    • 非常感谢@RedFilter,你拯救了我的一天!
    【解决方案2】:

    你已经设置了上传的文件夹路径,不需要像这样“server.mappath”

    请使用下面的代码。

    Set Upload = Server.CreateObject("Persits.Upload" ) 
    
    Upload.SetMaxSize 10000000 ' Maksimum dosya büyüklüğü Byte cinsinden 
    Upload.OverwriteFiles = True 
    
    Path = "../../duyurular/"
    Count = Upload.SaveAsVirtual(Path) 
    

    【讨论】:

    • 你来晚了我的朋友。这个问题在 20 个月前得到了回答。自从这个问题以来,我也没有使用过 ASP Classic。如果您回答最近尚未被接受的问题,可能会有更大的帮助。
    【解决方案3】:

    对于godaddy,您必须进入并将服务器文件夹权限更改为读/写。否则,您会收到该错误消息。

    【讨论】:

      【解决方案4】:

      我也遇到了这个问题,我只是更改了 Go-daddy 托管服务器的文件夹权限,因此任何人都可以从特定位置读取或写入文件

      非常感谢
      Ahsan Aziz Abbasi

      【讨论】: