为什么我上传的文件被ColdFusion 10锁定?

为什么我上传的文件被ColdFusion 10锁定?,coldfusion,coldfusion-10,Coldfusion,Coldfusion 10,如果不是电子表格,我将尝试删除该文件,但在上载testFile.text时,不断出现以下错误: ColdFusion无法删除文件D:\ColdFusion10\cfusion\runtime\work\Catalina\localhost\tmp\testFile.text 我验证了这不是权限问题,因为如果我返回并执行代码再次尝试删除该文件,它将正常工作 此文件=文件; fileRead=createObject(“java”、“java.io.FileInputStream”); thi

如果不是电子表格,我将尝试删除该文件,但在上载testFile.text时,不断出现以下错误: ColdFusion无法删除文件D:\ColdFusion10\cfusion\runtime\work\Catalina\localhost\tmp\testFile.text

我验证了这不是权限问题,因为如果我返回并执行代码再次尝试删除该文件,它将正常工作


此文件=文件;
fileRead=createObject(“java”、“java.io.FileInputStream”);
thisThread=CreateObject(“java”、“java.lang.Thread”);
loopCT=1;
while(1等式1)
{
尝试
{
init(这个文件);
打破
}
捕获(任何ecpt)
{
睡眠(1000);
}
增量值(loopCT);
如果(循环CT GT 60)
{
fileRead.close();
返回;
}
}
loopCT=1;
while(1等式1)
{
sizeA=fileRead.available();
睡眠(1000);
sizeB=fileRead.available();
if(sizeA EQ sizeB)
{
睡眠(1000);
sizeC=fileRead.available();
if(sizeC EQ sizeB)
{
打破
}
}
增量值(loopCT);
如果(循环CT GT 60)
{
fileRead.close();
返回;
}
}
fileRead.close();
该文件不是excel文件




关于cfimage锁定文件和防止删除,我遇到了完全相同的问题。我想出的解决办法如下。也许有人可以适应他们的情况:

<cflock name="[lockName]" timeout="5" >

   <cfcache action="flush">

    <!---[] Replace cfimage read function (CF BUG work around)  --->
   <cfscript>

      imageObj   = createObject( "java", "java.awt.Toolkit" );
      imagetools = imageObj.getDefaultToolkit();
      objImage   = imagetools.getImage( "#fullpath#" );
      <!---Whatever image I need from the image, or file...--->
      <!---such as ---- myImageStruct["width"] = objImage.getWidth();--->

      <!--- and then flush the object--->
      objImage.flush();

  </cfscript>

</cflock>

imageObj=createObject(“java”、“java.awt.Toolkit”);
imagetools=imageObj.getDefaultToolkit();
objImage=imagetools.getImage(“#完整路径#”);
objImage.flush();

是。不工作。我需要做这个文件吗;(编辑)定义“不工作”。如果收到错误,请包含错误消息。顺便说一句,你不需要做任何事情。该范围内的任何变量都可以从同一个.cfm脚本中的cfml或cfscript访问。我添加了剩余的代码,以便您可以看到我正在尝试做什么。我试图在删除某个文件之前验证该文件是否未锁定在Web服务器上,但当我要删除它时,在coldfusion堆栈跟踪中会显示“由于未知原因无法删除”“实际问题是什么?在cfscript之外设置的变量在该脚本块之外可用,反之亦然。”。如果是这种情况,错误消息将告诉您有一个未定义的变量。要解决这个问题,请将代码剥离到上载文件和设置变量。然后添加代码以删除该文件。如果失败,请查看指定的目录,看看文件是否确实存在。
<cflock name="[lockName]" timeout="5" >

   <cfcache action="flush">

    <!---[] Replace cfimage read function (CF BUG work around)  --->
   <cfscript>

      imageObj   = createObject( "java", "java.awt.Toolkit" );
      imagetools = imageObj.getDefaultToolkit();
      objImage   = imagetools.getImage( "#fullpath#" );
      <!---Whatever image I need from the image, or file...--->
      <!---such as ---- myImageStruct["width"] = objImage.getWidth();--->

      <!--- and then flush the object--->
      objImage.flush();

  </cfscript>

</cflock>