Mit Javascript prüfen ob Datei erstellt wurde

Hallo,

ich bin durch Zufall auf diesen Threat gestoßen. Im Ansatz passt es auch zu meinem Problem. Nur leider bekomme ich es nicht hin, das das JS Script das tut, was ich gerne möchte. Nun hoffe ich darauf, dass du mir vieleicht helfen kannst.

Also zur Erklärung:
Ich habe in einem Verzeichniss eine pdf liegen, die nach ca. 2-3 min. von einem anderen Programm gelöcht wird. Ach ja, also das ganze soll auf einem Server laufen (xampp) und nicht online. Wenn die Datei dann weg ist, dann soll das Div einfach ausgeblendet werden.

Bisherige Scripte:

file-exists.php habe ich auch so wie du, dass am ende der filecheck per echo (integer) ausgegeben wird. 1=Datei da 0=Datei nicht mehr da


datei.php sieht dann so aus:

<div id="wait" style="display:flex;">
<div>
<h3>Bitte warten.</h3>
<div id="ladebalken">
<div id="fortschritt"></div>
</div>
</div>
</div>

<script type="text/javascript">
var interval = window.setInterval(function ()
{
$.post('file-exists.php', { filename: filename }, function (data)
{
if(data == 0)
{
alert('Datei wech'); // Meldung nur zum testen
$('#wait').css('display', 'none');
window.clearInterval(interval);
}
}
)
}, 1000);



// Ab hier ist der Ladebalken, den versuche ich wenn der rest klappt irgendwie oben zu integrieren

"use strict";
var erhoehe_pixel = 1;
var ladevorgang;
if (window.addEventListener) {
window.addEventListener("load", ladeBalken, false); // für alle anderen Browser
}
else if (window.attachEvent) {
window.attachEvent("onload", ladeBalken); // für ältere IE
}
/*--- Funktion für die Fortschrittsanzeige ----------------------------*/
function ladeBalken() {
erhoehe_pixel++;
var schritt = document.getElementById("fortschritt");

if (erhoehe_pixel <= 380) {
ladevorgang = window.setTimeout("ladeBalken()", 700);
schritt.style.width = erhoehe_pixel + "px";
}
}

</script>







Code:
var interval = window.setInterval(function ()
{
  $.post('file-exists.php', { filename: filename }, function (data)
  {
    if(data == 1)
    {
      $('#message').text('Datei wurde generiert');
      window.clearInterval(interval);
    }
  });
}, 1000);
HTML:
<div id="message">Datei wird generiert ...</div>
.. dazu musst du allerdings auch noch jQuery einbinden.
 
* * * gelößt * * *

Habe den Fehler (in deinem JS stand POST und ich habe Get daraus gemacht) selber gefunden (und das mit sehr geringen JS Kenntnissen *yeah*) Aber ich poste ihn mal, falls jemand das selbe Problem hat oder irgendwann danach googelt:

Hatte in der PHP Datei (file-exists.php) oben das ganze HTML Kladderadatsch noch drinnen, jetzt sieht sie nur so aus:
<?php
echo (int) file_exists('----Dateiname zum überprüfen-----');
?>



Und hier das, was in der meiner Haupt PHP steht:
<div id="wait" style="display:flex;">
<div>
<h3>Bitte warten.</h3>
<div id="ladebalken">
<div id="fortschritt"></div>
</div>
</div>
</div>
<div id="button" style="display:none;">
<div>
----Hier kommt das rein, was eingeblendet wird, wenn die Datei da ist------
</div>
</div>

<script type="text/javascript">
//----------- Wenn Datei nicht mehr da ist, Ladebalken ausblenden und Button einblenden ----------------
var interval = window.setInterval(function ()
{
$.get('file-exists.php', function (data)
{
if(data == 0)
{
$('#wait').css('display', 'none');
$('#button').css('display', 'flex');
window.clearInterval(interval);
}
});
}, 1000); //--- Jede Sekunde prüfen

//----------- Script für den Ladebalken --------------------
"use strict";
var erhoehe_pixel = 1;
var ladevorgang;
if (window.addEventListener) {
window.addEventListener("load", ladeBalken, false); // für alle anderen Browser
}
else if (window.attachEvent) {
window.attachEvent("onload", ladeBalken); // für ältere IE
}
/*--- Funktion für die Fortschrittsanzeige ----------------------------*/
function ladeBalken() {
erhoehe_pixel++;
var schritt = document.getElementById("fortschritt");

if (erhoehe_pixel <= 380) {
ladevorgang = window.setTimeout("ladeBalken()", 700);
schritt.style.width = erhoehe_pixel + "px";
}
}
</script>


Also zumindest läuft es bei mir nun, falls natürlich jemand noch etwas findet, wie es besser wäre, gerne hier drunter posten. :)
 

Neue Beiträge

Zurück