うーん...奇妙な問題...
シラバスをアップロードするためのフォームを作成しています。基本的に、誰かがコースを検索し、コースの横にある「シラバスをアップロード」というボタンを選択します。次に、ファイルの入力を求めるウィンドウがポップアップします。このページ情報を渡して、URL をデータベースなどに挿入します。
<input name="upload" type="button" value = "Upload Syllabi" id = "uploads" onclick = "window.open('upload_syllabi.cfm?course=#course#&semest=#semester#&ref=#refnum#','popup','width=350,height=170,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0')"/>
次のページに渡されます。
<cfset session.semester = #url.semest#>
<cfset session.course = #url.course#>
<cfset session.ref = #url.ref#>
<form name = "uploadForm" enctype = "multipart/form-data" action = "upload_action.cfm">
<table align="center" class = "contenttable">
<tr>
<td><h3>Upload Syllabi for <cfoutput><b>#session.semester# #session.course# #session.ref#</b></cfoutput></h3> </td>
</tr>
<tr>
<td align="center">
<input name="syllabiUpload" id = "uploader" type="file" />
</td>
</tr>
<tr>
<td align="center">
<input type="submit" name="uploaded" id="uploaded" value="Upload" />
</td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td align="center"><a href="javascript:window.close();">[close]</a></td>
</tr>
</table>
</form>
私はもともとセッション変数を持っていませんでした...しかし、url.semestにいくつかの問題がありました...そして、それらをそのままにしてしまいました。
とにかく...フォームが送信されると、このページに移動する必要があります: upload_action.cfm
<cffile action="upload" filefield="syllabiUpload" destination="#SyllabiLoc#" nameconflict="makeunique">
<cfset SyllabiURL = "#SyllabiPath##cffile.serverfile#">
<cfquery name="checkSyllabi" datasource="#sacsds#" username="#sacsuser#" password="#sacsuser#">
SELECT *
FROM faculty.dbo.Syllabi
WHERE faculty.dbo.syllabi.Semester = '#session.semester#'
AND faculty.dbo.syllabi.Refnum = '#session.ref#'
</cfquery>
<cfif getSyllabi.recordCount is 0>
<cfelse>
<cffile action="delete" file = "#checkSyllabi.url#">
</cfif>
<cfquery name="updateSyllabi" datasource="#sacsds#" username="#sacsuser#" password="#sacsuser#">
UPDATE faculty.dbo.Syllabi
SET url = '#SyllabiURL#'
WHERE Semester = '#session.semester#'
AND Refnum = '#session.ref#'
</cfquery>
<table align="center">
<tr>
<td> </td>
</tr>
<tr>
<td>Uploaded</td>
</tr>
<tr>
<td> </td>
</tr>
</table>
送信ボタンをクリックすると、次のエラーが表示されます。
無効なコンテンツ タイプ: ''。cffile action="upload" では、フォームで enctype="multipart/form-data" を使用する必要があります。
ちょっと変です...フォームにそのコード行が間違いなくあるからです...
うーん....
編集: 問題 2 を続行します。
このエラーの取得:
ファイル D:\ColdFusion8\runtime\servers\coldfusion\SERVER-INF\temp\wwwroot-tmp\ http://uwf.edu/acad/Syllabi/Introduction to Maritime Studies Syllabus2.rtf アクション delete で指定されたファイルが存在しません。
cffile の削除は間違っていましたか? :\ わからない..