这一直在强调我。我正在调用一个从用户输入URL保存图像的php函数,然后回显一个javascript函数将其设置为背景图像。 除了将图像设置为背景外,其他工作正常。它保存在服务器和一切。我没有得到任何js或php语法错误,浏览器只是说404找不到,即使目录中有正确名称的文件。当我不将会话变量作为图像名称的一部分包含在内时,它完全正常。
在此先感谢,这可能只是因为我使用php已经有一段时间了,我只是傻了。
<?php
session_start();
$src = $_GET['image'];
$contents= file_get_contents($src);
$file = fopen( pic.$_SESSION['id'].'.jpg','w+');
fwrite($file, $contents);
fclose($file);
echo '<script>';
echo 'var body = document.getElementsByTagName("body")[0];';
echo 'var source = "pic'.$_SESSION['id'].'.jpg";';
echo '$(body).css("background-image", "url(source)");';
echo 'alert(source);'; //just to test to make sure it returns the correct name
echo '</script>';
?>
答案 0 :(得分:5)
// -c-o-r-r-e-c-t---c-o-n-c-a-t--------------v -------v
echo '$(body).css("background-image", "url(" + source + ")");';
注意,在服务器端呈现JavaScript代码时,最好检查它们。您可以随时在任何浏览器中检查“源代码”,或使用特殊的开发人员工具。
答案 1 :(得分:1)
第一个错误:fopen( pic.$_SESSION['id'].'.jpg','w+');
应为fopen( 'pic'.$_SESSION['id'].'.jpg','w+');
然后尝试:echo 'var source = "pic'.$_SESSION["id"].'.jpg";';
而不是echo 'var source = "pic'.$_SESSION['id'].'.jpg";';
答案 2 :(得分:0)
你可能想要这个(使它像普通的CSS背景图像声明一样):
$('body').css('background-image', 'url(' + source+ ')');