Coldfusion文件上传cfDocument

时间:2019-02-22 18:36:07

标签: file-upload coldfusion cfml

我使用cfDocument创建了一个pdf文件,并尝试使用fileUpload将其上传到我的服务器上,但出现错误:ByteArray objects cannot be converted to strings.

这是我的代码:

// Create PDF
formPdf = "";
cfDocument(format="PDF", name="formPdf") { writeOutput(formContent); };

// Upload the PDF
destination = expandPath("./MyFolder/#ID#/");
if(!directoryExists(destination)){
    directoryCreate(destination);
}
fileUpload( destination, formPdf, "*.", "MakeUnique" );

fileUpload()仅适用于字符串吗?如何上传刚刚创建的PDF文件?

谢谢

1 个答案:

答案 0 :(得分:4)

对于您的要求,由于文件已经在服务器上,因此无需上载文件,cfdocument可以处理生成和保存PDF文件的过程。

有关cfdocument的更多信息,请参见https://helpx.adobe.com/coldfusion/cfml-reference/coldfusion-tags/tags-d-e/cfdocument.htmlcfdocument旨在从格式化的输入中创建PDF。

您需要filename的{​​{1}}属性。这定义了将包含输出的文件的路径名。

您会想要类似的东西:

cfdocument

我提供了destination = expandPath("./MyFolder/#ID#/"); if(!directoryExists(destination)){ directoryCreate(destination); } pdfName = "calculatedPDFName.pdf" ; // Create PDF cfdocument(format="PDF", filename="#destination#/#pdfName#") { writeOutput( sanitizeMe(formContent) ) ; }; 的提示,以提醒您在使用或备份任何表单输入之前先进行清理,或者 ESPECIALLY 在将其保存回文件系统之前进行清理。那什么也没做,但是应该有。围绕Internet进行的讨论不计其数,讨论了如何以及为什么要这样做。

注意:我要链接几个讨论XSS和其他注入问题的页面,第一个弹出的链接是SO。 In ColdFusion How to Eliminate Vulnerable for Cross-Site Script当我低头看答案时,我意识到这是去年的我之一。当那件事发生时,一定要爱。 :-)