0

いくつかのフィールドを持つフォームを持つ小さなページがあります。また、ファイルのアップロード機能も含まれています。フォームの送信時に、アップロードするファイルのファイル名を「sURL」フィールドに挿入できるようにする必要があります。(sURL フィールドには、このファイル名を自動的に入力するか、外部 URL の場合は手動で入力することもできます)。この問題を抱えている他の人を調べましたが、簡単な解決策はないようです? 誰かが光を当てることができますか?

<html><head>    
<title>New Survey Entry</title>
</head>
<body>

<script language="JavaScript" type="text/javascript">
function check ( form )
{
  if (form.ul_path.value == "") {
    alert( "Please select the file to upload." );
    form.ul_path.focus();
    return false ;
  }
  return true ;
}

</script>

<CFIF NOT isDefined("dir")>
    <CFSET dir = "">
</CFIF>

<CFIF NOT isDefined("clientFile")>
    <CFSET clientFile = "">
</CFIF>

<CFQUERY NAME="getpub" DATASOURCE="testpage" DBTYPE="ODBC">
    SELECT *
    FROM surveypubs
    ORDER BY sGroup asc
</CFQUERY>
<h2><center>NEW SURVEY ENTRY</center></h2>
<table cellpadding="3" cellspacing="3" class="font13">
<cfoutput>
    <form name="input" enctype="multipart/form-data" action="index.cfml?cat=test&page=insertSurvey" method="post">
    <tr>
        <td valign="middle" align="left"><b>Year:</b></td>
        <td colspan="3"><input name="sYear" type="text" size="8" value="<CFOUTPUT>#year(now())#</CFOUTPUT>"><input name="sYear_required" type="hidden" value="You must enter a Year."></td>
    </tr>
    </cfoutput>
    <tr>
        <td valign="middle" align="left"><b>Group:</b></td>
        <td colspan="3"> <select name="sGroup">
<option value="">--- Select One ---</option>
<cfoutput query="getpub"><option value="#sGroup#">#sGroup#</option></cfoutput>
</select> <br> Don't see the Survey Group?  Click <a href="/index.cfml?cat=test&page=inputgroup" target="_blank">here</a> to add.

      </td>

</div><br><br>
    </tr>

    <tr>
        <td valign="middle" align="left"><b>Title:</b></td>
        <td colspan="3"><input name="sTitle" type="text" size="85"><input name="sTitle_required" type="hidden" value="You must enter a Title."></td>
    </tr>

    <tr>
        <td valign="middle" align="left"><b>Comment:</b></td>
        <td colspan="3"><input name="sComment" type="text" size="85"></td>
    </tr>

    <tr>
        <td valign="middle" align="left"><b>URL:</b></td>
        <td colspan="3"><input name="sURL" type="text" size="85"></td>
    </tr>

        <td valign="bottom" align="left"><b>URL Type:</b></td>
        <td colspan="3">
        <input type="radio" name="surlType" value="0" checked> Internal &nbsp;&nbsp;&nbsp;<input type="radio" name="surlType" value="1"> External</td>
    </tr>

<cfoutput>  
<input name="dateAdded" type="hidden" value="#dateformat(now(),"mm-dd-yyyy")#">
</cfoutput>                 
    <tr>
      <td></td>
      <form action="/index.cfml?cat=test&page=inputSurvey" method="POST" enctype="multipart/form-data" name="upload_form" id="upload_form" onsubmit="return check(this);">

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

        <CFFILE ACTION="UPLOAD" FILEFIELD="ul_path" DESTINATION="D:\testpage\docs\" NAMECONFLICT="OverWrite">
        <CFSET ClientFilePath = "#clientDirectory#\#clientFile#">
</CFIF>

      <td colspan="3" align="left">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=""></td>
  </tr>
    <tr>
        <td></td>
        <td colspan="3" align="center"><input type="submit" name="submit" value="Submit">&nbsp;&nbsp;<input name="clear" value="Clear" type="reset">&nbsp;&nbsp;<input type="button" name="back" value="Back" class="input" onClick="javascript:history.back();"></td>
    </tr>
    </table>

    </form>

<cfif isDefined("CFFILE.ClientFile")>
    <cfset form.sURL = "#CFFILE.ClientFile#">
<cfelse>
     <cfset form.sURL = "null">
 </cfif>

<cfoutput><input type="hidden" name="sURL" id="sURL" value="http://testpage.com/docs/#ClientFile#"/></cfoutput> 
 </form>      
</body>
    </html>
4

2 に答える 2

2

resultの属性を使用するcffileと、ファイルが保存されたディレクトリやファイル名など、アップロードに関するデータの構造が得られます。呼び出しに追加result='moo'し、 ofを実行してすべてのデータを表示します。cffilecfdumpmoo

返される内容の詳細については、このリンクを確認してくださいresult

于 2013-09-05T13:19:36.893 に答える