File upload CFSCRIPT-如何在上传前检查文件名的长度

File upload CFSCRIPT-如何在上传前检查文件名的长度,file-upload,coldfusion,long-filenames,File Upload,Coldfusion,Long Filenames,我在上传一个超长名称的文件时遇到了这个问题——我的数据库字段仅设置为50个字符。从那时起,我增加了我的数据库字段长度,但我想有一种方法在上传之前检查文件名的长度。下面是我的代码。验证返回“85”作为字符长度。对于我上传的每个不同的文件(没有一个文件名长度为85),它返回相同的计数 missing_info=“您的提交有点问题。以下内容是必需的或无效的:”; //检查数据库字段的文件名长度 if(len(表格[“简历文件1]”)gt 100) { missing_info=missing_inf

我在上传一个超长名称的文件时遇到了这个问题——我的数据库字段仅设置为50个字符。从那时起,我增加了我的数据库字段长度,但我想有一种方法在上传之前检查文件名的长度。下面是我的代码。验证返回“85”作为字符长度。对于我上传的每个不同的文件(没有一个文件名长度为85),它返回相同的计数


missing_info=“您的提交有点问题。以下内容是必需的或无效的:

    ”; //检查数据库字段的文件名长度 if(len(表格[“简历文件1]”)gt 100) { missing_info=missing_info&“
  • 恢复文件1”无效。字符长度必须小于100。当前计数为“&len(表单[“恢复文件1]”)和“
  • ”; 验证错误=真; ResumeFileInvalidMarker=true; }
有人看到这有什么问题吗

谢谢

上载文件后,变量“clientFileName”将为您提供上载文件的名称,而不带文件扩展名

上传文件之前读取文件名的唯一方法是使用JavaScript读取并解析文件字段中的值(文件路径)

上载文件后,变量“clientFileName”将为您提供上载文件的名称,而不带文件扩展名


上传文件之前读取文件名的唯一方法是使用JavaScript读取并解析文件字段中的值(文件路径)

快速澄清你问题的措辞。当代码执行时,文件上载已经发生。该文件位于ColdFusion服务器上的临时目录中,与文件上载相关的表单字段包含该文件的临时文件名。除了检查是否指定了某个文件外,不要直接对该文件执行任何操作,否则将绕过某些内置安全性

您希望使用带有()的
cffile
标记将临时文件移动到您选择的文件夹中。此时,您可以访问包含大量信息的结构。通常我会将应用程序“上传”到一个临时目录中,为了安全起见,该目录应该位于webroot之外

此时,您将需要对文件进行任何验证,例如文件名长度、文件类型、文件大小等,如果检查失败,则删除该文件。如果它通过了所有检查,那么您可以将它移动到它的最终目的地,该目的地可能在webroot中


在您的情况下,您需要检查cffile结构元素
clientFile
,它是原始文件名,包括扩展名(您需要检查,因为扩展名不需要存在,可以是任意长度)。

问题措辞中的快速澄清。当代码执行时,文件上载已经发生。该文件位于ColdFusion服务器上的临时目录中,与文件上载相关的表单字段包含该文件的临时文件名。除了检查是否指定了某个文件外,不要直接对该文件执行任何操作,否则将绕过某些内置安全性

您希望使用带有()的
cffile
标记将临时文件移动到您选择的文件夹中。此时,您可以访问包含大量信息的结构。通常我会将应用程序“上传”到一个临时目录中,为了安全起见,该目录应该位于webroot之外

此时,您将需要对文件进行任何验证,例如文件名长度、文件类型、文件大小等,如果检查失败,则删除该文件。如果它通过了所有检查,那么您可以将它移动到它的最终目的地,该目的地可能在webroot中


在您的情况下,您需要检查cffile structure元素
clientFile
,它是原始文件名,包括扩展名(您需要检查,因为扩展名不需要存在,可以是任意长度)。

谢谢您的详细回答-非常好的信息!是的,没错,从技术上讲,它已经上传到服务器上了——我忘记了那个部分。谢谢你的详细回答——很棒的信息!是的,没错,从技术上讲,它已经上传到服务器上了——我忘了那个部分。
    <cfscript>
    missing_info = "<p>There was a slight problem with your submission. The following are required or invalid:</p><ul>";
    // Check the length of the file name for our database field
    if ( len(Form["ResumeFile1"]) gt 100 )
    {
    missing_info = missing_info & "<li>'Resume File 1' is invalid. Character length must be less than 100. Current count is " & len(Form["ResumeFile1"]) & ".</li>";
    validation_error = true;
    ResumeFileInvalidMarker  = true;
    }
    </cfscript>