0

How can I get here the Response from my PHP File? client.responseText isnt working

I dont know what to type left here but it says it needs more Details? So i try to code atm a File Upload and this is a small beginn of it but for error handling i need to know the Response.

function fileChange() {

    var fileList = document.getElementById("fileA").files;

    //File Objekt (erstes Element der FileList)
    var file = fileList[0];

    //File Objekt nicht vorhanden = keine Datei ausgewählt oder vom Browser nicht unterstützt
    if (!file)
        return;

    document.getElementById("fileName").innerHTML = 'Dateiname: ' + file.name;
    document.getElementById("fileSize").innerHTML = 'Dateigröße: ' + file.size + ' B';
    document.getElementById("fileType").innerHTML = 'Dateitype: ' + file.type;
    document.getElementById("progress").value = 0;
    document.getElementById("prozent").innerHTML = "0%";
}


var client = null;

function uploadFile() {
    //Wieder unser File Objekt
    var file = document.getElementById("fileA").files[0];
    var interpret = document.getElementById("interpret").value;
    var title = document.getElementById("title").value;
    alert(interpret);
    alert(title);
    //FormData Objekt erzeugen
    var formData = new FormData();
    //XMLHttpRequest Objekt erzeugen
    client = new XMLHttpRequest();

    var prog = document.getElementById("progress");

    if (!file)
        return;

    prog.value = 0;
    prog.max = 100;


    formData.append("datei", file);
    formData.append("interpret", interpret);
    formData.append("title", title);

    client.onerror = function(e) {
        alert("onError");
    };

    client.onload = function(e) {
        document.getElementById("prozent").innerHTML = "100%";
        prog.value = prog.max;
    };

    client.upload.onprogress = function(e) {
        var p = Math.round(100 / e.total * e.loaded);
        document.getElementById("progress").value = p;
        document.getElementById("prozent").innerHTML = p + "%";
    };

    client.onabort = function(e) {
        alert("Upload abgebrochen");
    };

    client.open("POST", "./ajax/fileupload.php");
    client.send(formData);
}

function uploadAbort() {
    if (client instanceof XMLHttpRequest)
        client.abort();
}
Dave Chen
  • 10,617
  • 8
  • 35
  • 67
  • See this page on MDN https://developer.mozilla.org/en-US/docs/AJAX/Getting_Started – colecmc Jul 04 '15 at 01:09
  • Where did you try `client.responseText`? I don't see it. FYI, `client` is a global variable. You sure you're not clobbering it somewhere? –  Jul 04 '15 at 01:09
  • Oh... I see your `var client = null` outside that function. That makes me think you're trying to get the response outside of the callbacks. Where's the call to `uploadFile()`? We're missing relevant information. –  Jul 04 '15 at 01:11
  • Sorry, Its a mixed Part of some scripts i found online. uploadFile(); is called in the onchange Event of the File Input client.responseText i deleted after testing cause not worked. But was after `client.send(formData);` – Varex Dev's Jul 04 '15 at 01:18
  • Hope now i added all requiered Informations – Varex Dev's Jul 04 '15 at 01:34
  • 2
    If it's after `client.send(formData)` then it clearly won't work because this is asynchronous code, which means the `.send()` line doesn't wait for the response to return before it continues. You should put it inside the `onload` event handler. –  Jul 04 '15 at 01:55
  • http://stackoverflow.com/questions/14220321/how-to-return-the-response-from-an-asynchronous-call –  Jul 04 '15 at 01:56
  • 1
    Thank you squint :) Your Answer works. – Varex Dev's Jul 04 '15 at 01:59

0 Answers0