RApache如何使用R强制下载pdf

时间:2012-05-07 19:24:59

标签: apache r rapache

我正在尝试使用R和RApache下载pdf文件但没有成功。

这是我的代码

#R-Downwload pdf
#---------------------------------------------
pdf("/public_html/upload/rpdf.pdf")
attach(mtcars)
plot(wt, mpg)
abline(lm(mpg~wt))
title("PDF Report")
dev.off()

setContentType(type='application/pdf')
setHeader(header='Content-Disposition', 'attachment; filename=rpdf.pdf')
setHeader(header='Content-Transfer-Encoding', 'binary')
setHeader(header='Accept-Ranges', 'bytes')

cat("/public_html/upload/rpdf.pdf")

当我在浏览器上运行此代码时,它会显示下载弹出框,但是当我点击下载它时显示

... either not a supported file type or it has been damaged"

2 个答案:

答案 0 :(得分:3)

如果您遇到过这个问题,这就是答案。

setHeader(header='Content-Disposition', 'attachment; filename=rpdf.pdf')
setContentType("application/pdf")
t <- tempfile()
pdf(t)
attach(mtcars)
plot(wt, mpg)
abline(lm(mpg~wt))
title("PDF Report")
dev.off()
setHeader('Content-Length',file.info(t)$size)
sendBin(readBin(t,'raw',n=file.info(t)$size))

享受!

答案 1 :(得分:0)

您打印出字符串"/public_html/upload/rpdf.pdf",因为它在引号中。您要打印文件的内容,而不是cat()电话中文件的名称。也许你可以使用write