2016-03-23 21 views
0

Ich habe Inhalte, die JS in einer Funktion erstellt, und ich brauche zu drucken, dass der Inhalt in meinem Download-Ordner, aber wenn ich auf über Ajax versuchen wird es nicht funktionieren und werfen nicht alle FehlerDatei herunterladen Fehler mit Ajax

JS Code

$.ajax({ 
     url: 'includes/download.php', 
     type: 'post', 
     data: {'filename': name_file, 'content': content}, 
     success: function(data, status) { 
     if(data == "ok") { 
      console.log('data okay'); 
     } 
     }, 
     error: function(xhr, desc, err) { 
     console.log(xhr); 
     console.log("Details: " + desc + "\nError:" + err); 
     } 
    }); 

PHP-Code

<? 
$filename = $_POST['filename']; 
$content = $_POST['content']; 

header("Content-type: csd/"); 
header("Content-Disposition: attachment; filename=".$filename); 

print $content; 
+0

Ich glaube, ich entweder Ajax falsch anzurufenden oder Daten falsch zu senden, so oder so die JS nur die Details und Fehler protokolliert und keine der Fehlervariablen. – CHouse95

+0

Chk endende Klammern '$ _POST ['Dateiname']);' und '$ _POST ['Inhalt']);' – devpro

+1

Ordner Downloads ** WHERE **? auf deinen Kunden? oder auf dem Server? weil keiner dieser Code irgendwo Dateien erstellt. Sie senden einfach einen Text an den Server, der ihn dann direkt mit einem anderen MIME-Typ/Disposition an den Client zurückspuckt. –

Antwort

1

Wenn Sie den Inhalt in einer JavaScript-variablen haben Sie keine ajax-Aufruf müssen sie speichern

var content = 'anything'; 
var filename = 'testFile.txt'; 
var hiddenElement = document.createElement('a'); 

hiddenElement.href = 'data:attachment/text,' + encodeURI(content); 
hiddenElement.target = '_blank'; 
hiddenElement.download = filename; 
hiddenElement.click(); 

Die filename Variable sollte die Erweiterung enthalten auch

JsFiddle

+0

Ich habe versucht, dass es nicht im Download speichert es öffnet einfach den Inhalt in einem neuen Fenster ?? – CHouse95

+0

Wenn ich die Geige öffne, lädt sie automatisch eine 'file.txt' auf meinen PC herunter. Laden Sie es nicht auf Ihren PC herunter? – Sabbin

+0

kannst du bitte die Geige mit deiner 'content' -Variable bearbeiten, um den Inhalt zu sehen, den du versuchst zu speichern? – Sabbin