0

これは私にストレスを与えてきました。ユーザー入力URLから画像を保存するphp関数を呼び出してから、javascript関数をエコーし​​て背景画像として設定します。画像を背景として設定することを除いて、すべて正常に機能しています。サーバーとすべてに保存されます。js または php 構文エラーは発生しません。正しい名前のファイルがディレクトリにあるにもかかわらず、ブラウザは 404 not found と表示します。イメージ名の一部としてセッション変数を含めない場合、完全に正常に動作します。

事前に感謝します。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>';


?>
4

3 に答える 3

5
// -c-o-r-r-e-c-t---c-o-n-c-a-t--------------v -------v
echo '$(body).css("background-image", "url(" + source + ")");';

サーバー側でレンダリングされるときは、常に JavaScript コードを確認することをお勧めします。どのブラウザでも「ソース コード」をいつでもチェックできます。また、特別な開発者ツールを使用することもできます。

于 2012-12-19T12:34:11.527 に答える
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";';

于 2012-12-19T12:40:22.760 に答える
0

おそらくこれが必要です (通常の CSS background-image 宣言のようにするため):

$('body').css('background-image', 'url(' + source+ ')');
于 2012-12-19T12:34:41.887 に答える