A

ASP代码:上传文件时自动删除文件名中的%号和+号

HB 网络电脑 2025-02-14

症状:
后台删除某条记录时该记录所带附件文件名中如果有%号时,该条记录及所带附件文件均无法删除,500报错Server.MapPath() ���� 'ASP 0173 : 80004005',同样如果附件文件名中带+号则前台打不开此文件报错404,该条记录能删除但提示找不到附件文件,而实际该文件是存在于服务器上的。
解决办法:
在ASP上传文件时删除文件名中的“+”号和“%”号字符,可以在处理上传文件的部分添加二行代码来替换文件名中的“+”号和“%”号。
以下是代码片段:

' 处理上传文件
for each formName in upload.objFile
    set file = upload.file(formName)
    if file.FileSize > 0 then
        ' 删除文件名中的%号和+号
        dim safeFileName
        safeFileName = Replace(file.FileName, "%", "")
        safeFileName = Replace(safeFileName, "+", "")
        file1 = newfilename & "" & safeFileName
        filenamelist = formPath & newfilename & "" & safeFileName
        file.SaveAs formPath & newfilename & "" & safeFileName
    end if
    set file = nothing
next
```

解释:

  1. safeFileName = Replace(file.FileName, "%", ""): 这一行代码删除了文件名中的%号。
  2. safeFileName = Replace(safeFileName, "+", ""): 这一行代码删除了文件名中的+号。
    这两行代码会在保存文件之前删除文件名中的%号和+号。
    如果你还需要删除其他特殊字符,可以在Replace函数中添加相应的替换逻辑。

最终效果:
上传时选中的本机文件名:test+file%name.jpg
上传成功后服务器上的实际文件名:testfilename.jpg

PREV
本地部署Deepseek R1越狱版 - 无审查、无内容限制,无疫苗
NEXT
跨平台的开源下载工具Ghost Downloader3