2010-02-09 59 views

回答

10

你可以很容易地用一個用戶定義的函數來抽象它。

<cffunction name="fileuploader"> 
    <cfargument name="formfield" required="yes" hint="form field that contains the uploaded file"> 
    <cfargument name="dest" required="yes" hint="folder to save file. relative to web root"> 
    <cfargument name="conflict" required="no" type="string" default="MakeUnique"> 
    <cfargument name="mimeTypesList" required="no" type="string" hint="mime types allowed to be uploaded" default="image/jpg,image/jpeg,image/gif,image/png,application/pdf,application/excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/vnd.ms-powerpoint,application/vnd.openxmlformats-officedocument.presentationml.presentation,application/vnd.ms-excel,image/pjpeg"> 

    <cffile action="upload" fileField="#arguments.formField#" destination="#arguments.dest#" accept="#arguments.mimeTypesList#" nameConflict="#arguments.conflict#"> 

    <cfreturn cffile> 
</cffunction> 

,然後用它在CFSCRIPT:

<cfscript> 
    // NOTE: because of how cffile works, put the form field with the file in quotes. 
    result = fileUploader("FORM.myfield", myDestPath); 
    WriteOutput(result.fileWasSaved); 
</cfscript> 

注:我會很小心,你如何重新命名這個功能的情況下的Adobe不包含此功能的道路。

+0

這正是我過去所做的,我只是希望我可以避免它在9也許在10. –

+0

新功能已添加,請參閱上面編輯的問題中的鏈接 –

1

都能跟得上添加,但它已要求。

+0

考慮到已添加的文件功能的數量,它並沒有包含奇數上傳。 –

2

不知道何時添加了這個,但CF確實支持CFSCRIPT中的文件上傳。我一直在使用FileUpload()。我已經檢查過它不是我MVC框架中的函數,def似乎是CF 9.01特有的東西。

然而,生成器2似乎並不喜歡它也可以找到關於CF 9文檔參考,但它的作品,它是一部分持續的Adobe ColdFusion的9.01,Ralio我沒有檢查壽使用

例子:

fileUpload(getTempDirectory(),"ImageFile","","makeUnique");