PHP oturum Ajax ilerleme

1 Cevap php

I have an app that processes images and use jQuery to display progress to the user.
I done this with writing to a textfile each time and image is processed and than read this status with a setInterval.

Görüntü yok aslında (PHP'nin belleğinde bunu) işleme yazılır çünkü ben bir log.txt bir çözüm olacağını düşündüm, ama ben tüm fopen ve fread hakkındaki emin değilim. Bu konulara eğilimli mi?

Ben PHP oturumları ile de denedim, ancak işe almak gibi olamaz, ben niye alamadım ..

HTML:

<a class="download" href="#">request download</a>
<p class="message"></p>

JS:

$('a.download').click(function() {

    var queryData = {images : ["001.jpg", "002.jpg", "003.jpg"]};       
    $("p.message").html("initializing...");

    var progressCheck = function() {
        $.get("dynamic-session-progress.php",
            function(data) { 
                $("p.message").html(data); 
            }
        );
    };

    $.post('dynamic-session-process.php', queryData,
        function(intvalId) {
            return function(data) {
                $("p.message").html(data);
                clearInterval(intvalId);
            }
        } (setInterval(progressCheck, 1000))
    );

    return false;
});

process.php:

// session_start();

$arr = $_POST['images'];
$arr_cnt = count($arr);
$filename = "log.txt";

for ($i = 1; $i <= $arr_cnt; $i++) {
    $content = "processing $val ($i/$arr_cnt)";

    $handle = fopen($filename, 'w');
    fwrite($handle, $content);
    fclose($handle);

    // $_SESSION['counter'] = $content;

    sleep(3); // to mimic image processing
}

echo "<a href='#'>download zip</a>";

progress.php:

// session_start();

$filename = "log.txt";
$handle = fopen($filename, "r");
$contents = fread($handle, filesize($filename));
fclose($handle);

echo $contents;

// echo $_SESSION['counter'];

1 Cevap

Ne iki müşteri aynı anda görüntüleri işlemek olur?

Sen yeni bir oturum verilerin depolandığı böylece komut dosyası tamamlandıktan sonra, aksi takdirde sadece saklanan alacak, oturumunda yeni durumunu ayarlamak arasındaki () session_write_close eklemeyi deneyebilirsiniz.

Another solution would be to save the status in memcache or to use a database, perhaps separate the statuses with a userid or creating an md5 hash on the image data