Coldfusion 文件上传一个 cfDocument

Coldfusion fileUpload a cfDocument

我使用 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 文件?

谢谢

对于您的要求,无需上传文件,因为它已经在您的服务器上,并且 cfdocument 可以处理生成和保存 PDF 文件。

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

您需要 cfdocumentfilename 属性。这定义了将包含输出的文件的路径名。

你会想要这样的东西:

destination = expandPath("./MyFolder/#ID#/");
if(!directoryExists(destination)){
    directoryCreate(destination); 
}

pdfName = "calculatedPDFName.pdf" ;

// Create PDF 
cfdocument(format="PDF", filename="#destination#/#pdfName#") {
    writeOutput( sanitizeMe(formContent) ) ;   
};

我包含了 sanitizeMe() 作为提醒,提醒您在使用或备份之前清理任何表单输入,或者 特别是 在将其保存回文件之前系统。那没有做任何事情,但是应该做一些事情。关于如何以及为什么要这样做,互联网上有无数的讨论。

注意:我打算 link 几页讨论 XSS 和其他注入问题,弹出的第一个 link 是 SO。 当我低头看答案时,我意识到这是我去年的答案。发生这种情况时一定要爱。 :-)