File upload 使用Coldfusion.Navigation显示文件上载的结果?

File upload 使用Coldfusion.Navigation显示文件上载的结果?,file-upload,coldfusion,File Upload,Coldfusion,我想使用一个主页,在那里我将显示一个上传表单(在另一个文件中)。上传(动作文件结果)后,我想在同一页上显示上传结果 这是我的三个文件: index.cfm <html> <head> <title>HomePage</title> <cfajaximport tags="CFFORM"> </head> <body> <cfdiv id="Main" style="width:100

我想使用一个主页,在那里我将显示一个上传表单(在另一个文件中)。上传(动作文件结果)后,我想在同一页上显示上传结果

这是我的三个文件:

index.cfm

<html>
<head>
    <title>HomePage</title>
    <cfajaximport tags="CFFORM">
</head>
<body>
    <cfdiv id="Main" style="width:1000px; height:600px" >
        <cfdiv id="Options" style=" width:100%;height:20%" >
            Welcome Admin, <a href="javascript:ColdFusion.navigate('FileUpload.cfm','Content')" class="settings">Update  </a><a href="#" class="logout">Logout</a>
        </cfdiv>
        <cfdiv id="Content" style=" width:100%;height:80%">
            <h2>Here Goes Form and FileUploading</h2>
        </cfdiv>
    </cfdiv>
</body>
</html>
<html>
<head>
    <title>Upload A File</title>
</head>
<body >       
    <cflayout type="vbox" name="layout1">
        <cflayoutarea>
            <cfform  enctype="multipart/form-data"  action="FileReceiver.cfm" >
                File To Upload:
                <cfinput type="file" name="Filename" size="50" >
                <br/>       
                <cfinput type="submit" name="UploadFile" value="UPLOAD THIS FILE">
                <br/>
            </cfform>
       </cflayoutarea>
       <cflayoutarea>       
       <table border="1" >
       <tr>
          <th >
               Directory Information
          </th>
       </tr>
       <tr>
           <td>
               <cfoutput >
               CurrectDirectory Path: #getdirectoryFromPath(expandPath("index.cfm"))#
               </cfoutput>
           </td>
       </tr>
       </table>
       </cflayoutarea>
   </cflayout>
</body>
</html>
<cfif isdefined('UploadFile')  >
    <cfoutput >
        <cffile nameconflict="makeunique"
            action="upload"
            filefield="Form.Filename"
            destination="#getdirectoryFromPath(expandPath("index.cfm"))#" > 
            <!--- or destination="c:\Upload\"--->
        File upload was successful!

    </cfoutput>
</cfif>

主页
欢迎管理员,
这里是表单和文件上传
FileUpload.cfm

<html>
<head>
    <title>HomePage</title>
    <cfajaximport tags="CFFORM">
</head>
<body>
    <cfdiv id="Main" style="width:1000px; height:600px" >
        <cfdiv id="Options" style=" width:100%;height:20%" >
            Welcome Admin, <a href="javascript:ColdFusion.navigate('FileUpload.cfm','Content')" class="settings">Update  </a><a href="#" class="logout">Logout</a>
        </cfdiv>
        <cfdiv id="Content" style=" width:100%;height:80%">
            <h2>Here Goes Form and FileUploading</h2>
        </cfdiv>
    </cfdiv>
</body>
</html>
<html>
<head>
    <title>Upload A File</title>
</head>
<body >       
    <cflayout type="vbox" name="layout1">
        <cflayoutarea>
            <cfform  enctype="multipart/form-data"  action="FileReceiver.cfm" >
                File To Upload:
                <cfinput type="file" name="Filename" size="50" >
                <br/>       
                <cfinput type="submit" name="UploadFile" value="UPLOAD THIS FILE">
                <br/>
            </cfform>
       </cflayoutarea>
       <cflayoutarea>       
       <table border="1" >
       <tr>
          <th >
               Directory Information
          </th>
       </tr>
       <tr>
           <td>
               <cfoutput >
               CurrectDirectory Path: #getdirectoryFromPath(expandPath("index.cfm"))#
               </cfoutput>
           </td>
       </tr>
       </table>
       </cflayoutarea>
   </cflayout>
</body>
</html>
<cfif isdefined('UploadFile')  >
    <cfoutput >
        <cffile nameconflict="makeunique"
            action="upload"
            filefield="Form.Filename"
            destination="#getdirectoryFromPath(expandPath("index.cfm"))#" > 
            <!--- or destination="c:\Upload\"--->
        File upload was successful!

    </cfoutput>
</cfif>

上传文件
要上载的文件:


目录信息 当前目录路径:#getdirectoryFromPath(expandPath(“index.cfm”))#
FileReceiver.cfm

<html>
<head>
    <title>HomePage</title>
    <cfajaximport tags="CFFORM">
</head>
<body>
    <cfdiv id="Main" style="width:1000px; height:600px" >
        <cfdiv id="Options" style=" width:100%;height:20%" >
            Welcome Admin, <a href="javascript:ColdFusion.navigate('FileUpload.cfm','Content')" class="settings">Update  </a><a href="#" class="logout">Logout</a>
        </cfdiv>
        <cfdiv id="Content" style=" width:100%;height:80%">
            <h2>Here Goes Form and FileUploading</h2>
        </cfdiv>
    </cfdiv>
</body>
</html>
<html>
<head>
    <title>Upload A File</title>
</head>
<body >       
    <cflayout type="vbox" name="layout1">
        <cflayoutarea>
            <cfform  enctype="multipart/form-data"  action="FileReceiver.cfm" >
                File To Upload:
                <cfinput type="file" name="Filename" size="50" >
                <br/>       
                <cfinput type="submit" name="UploadFile" value="UPLOAD THIS FILE">
                <br/>
            </cfform>
       </cflayoutarea>
       <cflayoutarea>       
       <table border="1" >
       <tr>
          <th >
               Directory Information
          </th>
       </tr>
       <tr>
           <td>
               <cfoutput >
               CurrectDirectory Path: #getdirectoryFromPath(expandPath("index.cfm"))#
               </cfoutput>
           </td>
       </tr>
       </table>
       </cflayoutarea>
   </cflayout>
</body>
</html>
<cfif isdefined('UploadFile')  >
    <cfoutput >
        <cffile nameconflict="makeunique"
            action="upload"
            filefield="Form.Filename"
            destination="#getdirectoryFromPath(expandPath("index.cfm"))#" > 
            <!--- or destination="c:\Upload\"--->
        File upload was successful!

    </cfoutput>
</cfif>

文件上传成功!
当我单击“更新链接”时,索引页面会在其中一个容器中显示FileUpload.cfm页面。但上传文件时,我总是收到一条错误消息:

检索元素cf_layoutarea736558924094373的标记时出错: 无效的内容类型:application/x-www-form-urlencoded; 字符集=UTF-8。[通过将“cfdebug”添加到URL来启用调试 参数以查看更多信息]


请帮助我以正确的方式进行操作,因为我无法找出问题所在。

在可能键入错误的cffile标记中,您有以下内容:

filefield="Form.Filename"

,建议您只需要表单字段的名称,而不需要限定。

我猜您实际上没有得到表单范围值。 为了上传文件,您使用了正确的多部分/表单数据,并且cfform中method属性的默认值是POST,看起来也不错

问题可能是因为CFFileNonMultipartException

在上载代码之前转储表单作用域,以检查是否在filereceiver.cfm上获取了所有表单值

您也可以尝试不使用cfform

<form action="FileReceiver.cfm" method="post" enctype="multipart/form-data">
<input type="file" name="Filename">
<input type="submit" name="UploadFile" value="UPLOAD THIS FILE">
</form>

是的,达尔梅什,你可以在这里玩小把戏。摆脱FileReceiver.cfm页面。在index.cfm中添加此代码

 <cfif structKeyExists(FORM,"filename")> 
    <cffile action="upload" filefield="Form.Filename" destination="#getdirectoryFromPath(expandPath("index.cfm"))#" result = "fileUploaded"> 
    <cfif isDefined("fileUploaded") AND fileUploaded.FILEWASSAVED EQ "yes"> 
       Success
    </cfif> 
</cfif> 

成功

然后将您的表单提交到index.cfm而不是fileReceiver.cfm

是否有您没有向我们显示的cffile标记?谢谢Sam,它通过用html和替换来工作。但我之所以使用,是因为我想在cfform所在的同一容器中显示返回的loadsuccess消息,实际上,当我阅读cfform submission时,它会在容器中显示结果,而html表单会将您带到新页面。。。我仍然可以这样做吗?以什么方式?谢谢Dan,但是这个参数似乎没有问题,因为我们必须传递一个表单字段,但没有磅号。