我正在开发一个将 R 环境与 RApache 结合使用的 Web 应用程序。我使用 AJAX.updater 函数将几个变量发送到 R 脚本,然后返回给浏览器一个 ResponseText 以显示。没有问题,但现在我希望将变量发送到绘制图形的 R 脚本,然后我想将图像返回到浏览器。
我可以在浏览器中显示 R 使用该脚本绘制的图像,例如:
<% setContentType("image/png")
t <- tempfile()
load(file="/var/www/oraculo/brew/ICER")
png(t, width=3.25, height=3.25, units="in", res=1200, pointsize=4)
plot(G,vertex.size=1,vertex.label=NA)
dev.off()
sendBin(**readBin**(t,'raw',n=file.info(t)$size))
unlink(t)
DONE
%>
另一个发送变量并返回文本字符串的脚本:
new Ajax.Updater( 'numFermin', '../brew/shortestPath.rhtml',
{
'method': 'GET',
'parameters': {'autini': autini, 'autfin':centro, 'XarXaj': red},
'onSuccess': function(transport) {
txtRespuesta = transport.responseText;
if (txtRespuesta.lastIndexOf("Error")==-1){
var rutaMin = transport.**responseText**;
var accion = "";
var url = "index.src.php?accion=obtener&rutaMin="+rutaMin+"&numF=1";
document.getElementById("oculto1").src=url;
}else{
...
使用 RApache 的 GET 变量,我可以在 R 脚本中使用“autini”。
一种可能的解决方案是将图像保存在文件中,但我不太喜欢它。有什么办法可以将“ readbin ”中读取的比特流放入“ responseText ”中,然后在php中构建图像?我应该使用 AJAX 的哪个功能?
谢谢你的时间!