2017-12-19 2 views
0

In meinem Projekt möchte ich die Datei herunterladen und diese Datei wird nach dem Download gelöscht.So stellen Sie sicher, dass eine Datei erfolgreich heruntergeladen wird

Ich hatte async: false im ersten Ajax, um zu bestätigen, dass das Herunterladen der Datei abgeschlossen ist.

//this is download file code: 
$.ajax({ 
     dataType:'json', 
     type:'POST', 
     async: false, 
     data:{files:files}, 
     url:'oat.php', 
     success:function(data){ 
      delFile=data.name; 
      alert(delFile); 
      window.location=delFile; 
     } 
    }); 

    //this is delete file code: 
    $.ajax({ 
      type:'POST', 
      data:{delFile:delFile}, 
      url:'delFileoat.php', 
      success:function(data){ 
      } 
     }); 

Aber Pech, löschen ist immer vor dem Download wie es an der Zeit, zum Download braucht aber Datei nur für eine Sekunde zu löschen.

So bekomme ich immer Nachrichten über "kann Datei im Server nicht finden".

Gibt es nach erfolgreichem Herunterladen der Datei einen Rückgabewert für window.location=delFile?

+0

Wie geben Sie die Datei aus? Wird es von Ihrem Webserver oder einem PHP-Skript gehandhabt? –

+0

@TobiasF. per Webserver – Snow

+0

Wenn es über ein Skript laufen würde, könnten Sie es über etwas wie 'readfile()' ausgeben und danach (wenn der Download abgeschlossen war) können Sie weitermachen und die Datei löschen. –

Antwort

1

async: false ist veraltet. Sie können Ihre Datei unter success Rückruf löschen. wie unter

$.ajax({ 
    dataType: 'json', 
    type: 'POST', 
    data: { 
    files: files 
    }, 
    url: 'oat.php', 
    success: function(data) { 
    // do your stuff 
    $.ajax({ 
     type: 'POST', 
     data: { 
     delFile: delFile 
     }, 
     url: 'delFileoat.php', 
     success: function(data) {} 
    }); 
    } 
}); 
+0

NEIN !!, Ich habe diesen Weg versucht, es hat das gleiche Ergebnis. – Snow

+0

Wo ist Ihr Code zum Herunterladen? –

+0

In meinem Webserver – Snow

Verwandte Themen