文件上载正在执行多次

时间:2013-04-26 18:52:50

标签: coldfusion

我正在尝试创建一个表单,用户可以选择一个位置,然后使用CFFILE ACTION ="UPLOAD"上传文档。我对此并不擅长,所以你能提供的任何帮助都将不胜感激。

以下是我的代码。基本上,有一个文件夹位置的下拉列表。用户首先选择其中一个位置。然后单击“浏览”以选择文件。最后,他们点击提交并上传文件。

#dir#的代码是链接到每个位置名称的文件夹位置。目前正在发生的事情是文档成功上传...但是它上传到所有文件夹位置而不是从下拉列表中选择的文件夹位置。这是我的代码:

docuploads.cfm

<cfquery name="getLocation">
    SELECT *
    FROM Locations
    ORDER BY FolderName
</cfquery>

<form action="docuploads.cfm" method="POST" enctype="multipart/form-data" name="upload_form" id="upload_form"> 
    <select name="folderID">
        <option value="">--- Select Folder ---</option>
        <cfoutput query="getLocation">
            <option value="#FolderName#"">#FolderName#</option>
        </cfoutput>
    </select>

    <cfoutput query="getLocation">
       <CFIF IsDefined("form.upload_now")>
          <CFIF structKeyExists(form, "ul_path") and len(form["ul_path"])>
             <CFFILE ACTION="UPLOAD" FILEFIELD="ul_path" 
                    DESTINATION="C:\Documents\#dir#\"         
                    NAMECONFLICT="OverWrite">
              <CFSET ClientFilePath = "#clientDirectory#\#clientFile#">
          </CFIF>
      </CFIF>
     </CFOUTPUT>

     <br /><br />
     Click on the Browse button to select the file to Upload:<br>
     <input type="file" name="ul_path" id="ul_path" style="height: 22px;width: 350px;" value=""><br><br>
     <input type="submit" name="upload_now" id="upload_now" value="Submit" style="height: 22px;">
     <input type="button" name="clear" value="Clear" style="height: 22px;">
     <br /><br /><br />
</form>

我希望这有一定道理 - 任何人都可以解释这个问题吗?

2 个答案:

答案 0 :(得分:0)

我假设您没有发布完整代码,因为您的#clientDirectory#/#clientFile#似乎没有上面代码中的来源。

我把可能的样本放在一起。我还将您的上传例程从代码正文移到了顶部以便于阅读。

<CFIF IsDefined("form.upload_now")>
    <CFIF structKeyExists(form, "ul_path") and len(form["ul_path"])>

        <!--- assuming you need to lookup info from the database --->   
        <cfquery name="getThisLocation">
            SELECT FolderID, FolderName, dir 
            FROM Locations
            where foldername=#form.folderid#

        </cfquery>      


        <CFFILE ACTION="UPLOAD" FILEFIELD="ul_path" 
                    DESTINATION="C:\Documents\#getThisLocation.dir#\"         
                    NAMECONFLICT="OverWrite">

        <CFSET ClientFilePath = "#getThisLocation.clientDirectory#\##getThisLocation.clientFile#">

     </CFIF>
</CFIF>


<cfquery name="getLocation">
    SELECT *
    FROM Locations
    ORDER BY FolderName
</cfquery>

<form action="docuploads.cfm" method="POST" enctype="multipart/form-data" name="upload_form" id="upload_form"> 

<CFIF IsDefined("form.upload_now")>
    <CFIF structKeyExists(form, "ul_path") and len(form["ul_path"])>
    <P>FILE UPLOADED</P>
    </CFIF>
</CFIF>

    <select name="folderID">
        <option value="">--- Select Folder ---</option>
        <cfoutput query="getLocation">
            <option value="#FolderName#"">#FolderName#</option>
        </cfoutput>
    </select>



     <br /><br />
     Click on the Browse button to select the file to Upload:<br>
     <input type="file" name="ul_path" id="ul_path" style="height: 22px;width: 350px;" value=""><br><br>
     <input type="submit" name="upload_now" id="upload_now" value="Submit" style="height: 22px;">
     <input type="button" name="clear" value="Clear" style="height: 22px;">
     <br /><br /><br />
</form>

我还添加了一段代码,让用户知道该文件已上传。

答案 1 :(得分:-1)

请试试这个:

<CFIF IsDefined("form.upload_now")>
      <CFIF structKeyExists(form, "ul_path") and len(form["ul_path"])>
         <CFFILE ACTION="UPLOAD" FILEFIELD="#form.ul_path#" 
                DESTINATION="C:\Documents\#dir#\"         
                NAMECONFLICT="OverWrite">
          <CFSET ClientFilePath = "#clientDirectory#\#clientFile#">
      </CFIF>
      <cfoutput>file uploaded successfully</cfoutput>
  </CFIF>

<cfquery name="getLocation">
  SELECT *
  FROM Locations
  ORDER BY FolderName
</cfquery>

<form action="docuploads.cfm" method="POST" enctype="multipart/form-data" name="upload_form" id="upload_form"> 
  <select name="folderID">
    <option value="">--- Select Folder ---</option>
    <cfoutput query="getLocation">
        <option value="#FolderName#"">#FolderName#</option>
    </cfoutput>
</select>

  <br /><br />
 Click on the Browse button to select the file to Upload:<br>
 <input type="file" name="ul_path" id="ul_path" style="height: 22px;width: 350px;" value=""><br><br>
 <input type="submit" name="upload_now" id="upload_now" value="Submit" style="height: 22px;">
 <input type="button" name="clear" value="Clear" style="height: 22px;">
 <br /><br /><br />