我有一个 python/R 脚本,它同时使用 Python 和 R 来计算图形。实际图形由 R 生成,可以存储为 PNG 图像。这在机器上测试时工作正常,在具有正确权限的文件夹中,但我现在必须在线进行。我有一个将用户数据发送到 Python 脚本的 Apache/PHP 接口(interface),Python 脚本与 R 一起计算图形。
此时 R 无法将图片存储在 Apache 上。通过 R 和 Python 等外部程序启用此临时文件创建的最佳方法是什么?此外,我需要显示图片,然后在 PHP session 结束时将其删除。
虽然肯定有用,但任何仅允许访问 Python 或 R 的方法都不够好。我的问题是 Apache 中的客户端-服务器“作案手法”之一:假设程序 X 由 PHP 调用。允许程序 X 存储和发送图片/文本/任何内容到 PHP 的最佳方式是什么以及如何实现它?
创建具有完全权限的服务器可访问文件夹似乎是一个安全黑洞。
请您参考如下方法:
使用 R,您可以tempfile 为临时文件生成文件名。您也可以稍后使用 file.remove 删除该文件,但听起来这最好从 PHP 代码中完成(如果它在 PHP session 结束时被删除)。
plot_file <- paste(tempfile(tmpdir = "some_dir_with_write_permission"), "png", sep = ".")
png(plot_file)
plot(1:10)
dev.off()
#later on ...
file.remove(plot_file)
