当我尝试用撇号上传文件时,我会得到错误:
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
如果文件名是test's.pdf,我会得到错误。但是,如果我将名称更改为test.pdf,则没有错误。
有人知道为什么吗?
谢谢
我也有类似的情况,我正在动态创建从查询结果创建Excel文件的页面文件名。我采用的方法是创建一个函数,将所有不良字符替换为某些东西。这是该功能的一部分。
<cfargument name="replacementString" required="no" default=" ">
<cfscript>
var inValidFileNameCharacters = "[/\*'?[]:><""|]";
return reReplace (arguments.fileNameIn, inValidFileNameCharacters, arguments.replacementString, "all");
</cfscript>
您可能需要考虑一种相反的方法。而不是声明无效的字符并替换它们,请声明有效的字符并替换有效字符列表中的任何内容。
我建议将其作为所有适当页面上可用的函数。您的工作方式取决于您的情况。
我的猜测是,撇号是Microsoft Word经常使用的多字符撇号之一。这样的角色可能不是您的OS文件系统的有效字符。
您可能需要重新编码系统以在上传时使用临时文件,然后在上传成功后将其重命名为有效的文件名。
这是一些基本的故障拍摄信息。
将您的代码包装在试用/捕获块中,然后将完整错误转移到页面输出中。在下面使用尝试/捕获/转储的示例。下面的示例通过将错误除以零。
用于基于标签的CFML:
<cftry>
<cfset offendingCode = 1 / 0>
<cfcatch type="any">
<cfdump var="#cfcatch#" label="cfcatch">
</cfcatch>
</cftry>
cfscript cfml:
<cfscript>
try {
offendingCode = 1 / 0;
} catch (any e) {
writeDump(var=e, label="Exception");
}
</cfscript>