带有撇号字符的ColdFusion服务器文件



当我尝试用撇号上传文件时,我会得到错误:

    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>

最新更新