文件上传到ColdFusion 10';s的restapi框架

文件上传到ColdFusion 10';s的restapi框架,rest,coldfusion,coldfusion-10,Rest,Coldfusion,Coldfusion 10,我正在尝试将文件上载到ColdFusion 10中的REST端点。我尝试过多种方法,但都没有奏效 为作为REST端点定义的CFFUNCTION指定一个CFARGUMENT type=“binary”。这将导致CF REST API编译错误 提交一个多部分/表单数据POST/PUT请求,并使用CFFILE在CFFILE函数体中处理文件上传。这会导致CF REST框架看不到CFARGUMENT标记所需的任何表单字段参数 将文件上载到只需要该文件的单独端点,并将HTTP内容类型头设置为该文件的MIM

我正在尝试将文件上载到ColdFusion 10中的REST端点。我尝试过多种方法,但都没有奏效

  • 为作为REST端点定义的CFFUNCTION指定一个CFARGUMENT type=“binary”。这将导致CF REST API编译错误
  • 提交一个多部分/表单数据POST/PUT请求,并使用CFFILE在CFFILE函数体中处理文件上传。这会导致CF REST框架看不到CFARGUMENT标记所需的任何表单字段参数
  • 将文件上载到只需要该文件的单独端点,并将HTTP内容类型头设置为该文件的MIME类型。CF REST框架拒绝这种做法,因为它需要特定的内容类型(可能是多部分/表单数据或应用程序/x-www-form-urlencoded)
REST端点定义如下所示

    <cffunction name="createDocument" access="remote" returnType="String" returnformat="JSON" httpMethod="POST" restPath="/document/">
      <cfargument name="Authorization" type="string" required="true" restargsource="Header">
      <cfargument name="folder" type="any" required="true" restargsource="Form">
      <cfargument name="cabinet" type="any" required="true" restargsource="Form">
      <cfargument name="filedata" type="bindary" required="true" restargsource="Form">
     [...]
     </cffunction>

[...]

@siromega我不确定您是否找到了解决方案,但我遇到了支持文件上传的taffy.io。如果你有,你能发布一个更新吗

图像字段的标题不同,图像字段的内容采用二进制编码


希望有帮助。

最近,我使用ColdFusion REST创建了一个文件上传API。下面是一个示例,其中我们接受一个文件(csv或excel)并将其转换为json。我们已在ColdFusion Administrator中注册了此REST服务。上载文件所依据的参数名为fileParam

component  output="false" restpath="/upload"
{

remote any function uploadFile() httpmethod="POST" consumes="multipart/form-data" produces="application/json" {
    destination = getTempDirectory();       
    uploadDetails = FileUpload(destination, "fileparam", "text/csv,application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "overwrite");
    fileSeparator = "\";//make platform independent     
    filePath = uploadDetails.SERVERDIRECTORY & fileSeparator & uploadDetails.ATTEMPTEDSERVERFILE;
    cfspreadsheet(action = "read", src = filePath, excludeHeaderRow = false, query = "data");
    return serializejson(data);

}
}

是的,我最终放弃了内置的CF REST API,选择了Taffy。效果好多了。