3

サーバーからこの画像を削除すると同時に、訪問者に画像を表示したいだけです。

私はこれを試しました

画像を表示します。データベースからレコードを削除します。を使用してサーバーからイメージを削除しますunlink()

echo "image";
$deleteimage = mysql_query("DELETE FROM table WHERE uniqueid= '$id'") or die(mysql_error());
unlink("../image path");

ただし、ページが読み込まれると、訪問者に表示される前にサーバーからファイルが削除されます。

PHP検索した後、出力をレンダリングする前にスタックで実行されることがわかりました。

を使用してこれを行う方法ajax jquery。つまり、ページをロードして画像を表示してから、ajax コードを実行して画像を削除します。

ajaxコードを教えてください。私はよく知らないjavascript (ajax,jquery)

4

3 に答える 3

1
<!DOCTYPE html>
<html>
<head>
    <script src="jquery.min.js"> </script>
</head>
<body>
<script>
    function unlinkImage(src) {
        $.ajax({
            type:"POST",
            url: "delete.php",
            data:{
                src:src
            }
        }).done(function() {
            alert('done')
        });
    }
</script>
<img src='someimage.png' onload="unlinkImage('someimage.png')" />
</body>
</html>

PHP側で削除するには(delete.php):

<?php
    $res = unlink($_REQUEST['src']);
?>
于 2013-10-17T06:11:50.150 に答える
0

これが作業コードです。

<html>
    <head>
        <title>Log In Page</title>
        <script src="http://code.jquery.com/jquery-1.9.0.min.js"></script>
        <script>
            function ImageLoad(obj) {
                var src = $(obj).attr('src');
                $.ajax({
                    type:"POST",
                    url: "test.php",
                    data:{
                        imageSrc:src
                    },
                    dataType:"text",
                    success: function(data) {
                        $('#doneDiv').html(data);
                    }
                });
            }
        </script>
    </head>
    <body>
        <img src="http://s8.postimg.org/9rhympj35/agent_Photo.jpg" onload="ImageLoad(this);">
        <div id="doneDiv"></div>
    </body>
</html>

ではtest.php、次のことができます。

<?php
    $res = unlink($_POST['imageSrc']);
    echo 'done'; 
    // or you can delete from database with your code

?>
于 2013-10-17T06:35:34.890 に答える
0

使用AJAXすると、どの画像が削除されない可能性があります。接続の問題または無効javascriptです。

あなたがする必要があります:

<img src="imgage.php?id=ID" />

そしてimage.php書面で:

// Select image source
$image = mysql_result(mysql_query("SELECT image FROM table WHERE uniqueid= '".intval($id)."'"), 0, 'image');

// Show image
header('Content-type: image/jpeg'); // Or your image type
readfile($image);

// Delete image
$deleteimage = mysql_query("DELETE FROM table WHERE uniqueid= '".intval($id)."'") or die(mysql_error());
unlink($image);

mysql_*も使用しないでください... PDOまたはMysqliを使用できます。

于 2013-10-17T06:24:49.397 に答える