2014-05-23 25 views
0

我想在DIV中列出已處理的每個文件。 例如:處理文件#1時,在DIV中顯示文件名。處理文件#2時,請執行相同的操作,但將其附加到文件#1下,以此類推每個文件。當文件已被處理時顯示文件名


jQuery的

var request = $.ajax({ 
    url: 'manage-images.php', 
    type: 'GET', 
    cache: false, 
    beforeSend: function() { 
     $('#photos').html('<div class="centered color-blue">Processing. Please wait...</div>'); 
    } 
}); 

request.done(function(s) { 
    $('#photos').append(s); 
}); 

request.fail(function(s) { 
    $('#photos').html('Something went wrong!'); 
}); 

管理,images.php

$dir = new RecursiveDirectoryIterator('folder-name/here', FilesystemIterator::SKIP_DOTS); 
$it = new RecursiveIteratorIterator($dir, RecursiveIteratorIterator::SELF_FIRST); 
$it->setMaxDepth(1); 

foreach($it AS $fileinfo) { 
    if($fileinfo->isFile()) { 
     // functions and stuff... 

     echo $fileinfo->getFilename().' - done<br>'; 
    } 
} 

回答

0

的問題是,你是在同一時間處理在服務器端的所有照片。我認爲您需要重新考慮您的架構,並且一次處理一張照片。當您從第一張處理過的照片中獲得回覆時,附加文件名,然後撥打另一個電話來處理下一張照片。

這裏是一個很好的例子: How to get multiple responses from PHP file via AJAX?

編輯:您的新問題「的網站怎樣才能知道哪些文件是下一個」。我的PHP並不好,但我希望這個想法能夠實現。只需讓服務器端頁面一次處理一張照片即可。

$dir = new RecursiveDirectoryIterator('folder-name/here', FilesystemIterator::SKIP_DOTS); 
$it = new RecursiveIteratorIterator($dir, RecursiveIteratorIterator::SELF_FIRST); 
$it->setMaxDepth(1); 

//If there is a photo to be processed 
if (count($it) > 0) 
{ 
    $fileinfo = $it[0]; 
    if($fileinfo->isFile()) 
    { 
     // functions and stuff...  
     echo $fileinfo->getFilename().' - done<br>'; 
    } 
} 
else 
{ 
    echo "NO_PHOTOS"; 
}  

然後在客戶端,在jQuery中,您將檢查響應爲「NO_PHOTOS」。這是你如何知道停止從jQuery處理。

+0

謝謝你的回答!它做了竅門,但我不知道我在'manage-images.php'中只能處理一個文件。網站如何知道下一個文件? – Erik

+0

我將編輯我的答案來回答這個問題。 –

+0

你的例子沒有工作,但我現在知道我將如何繼續這個:)非常感謝! – Erik

相關問題