JavaScript - Descargar archivo ajax

 
Vista:

Descargar archivo ajax

Publicado por Vidal Garza (15 intervenciones) el 26/10/2018 02:11:01
Buen dia foro,

Espero esten bien, he estasdo buscando como descargar un archivo pero por mas pruebas que hago no consigo lo que busco.

Necesito descargar un archivo con ajax y php.
Se que el archivo llega bien al servidor por que la finalidad es guardarlo en MySQL y se guarda bien, de hecho si uso MySQL Workbench, puedo descargar el archivo bien, pero a la hora de descargar el archivo es donde tengo el problema, he intentado muchos codigos y no logro descargar el archivo.

En el siguiente codigo, no guardo el archivo en MySQL, simplemente lo vuelvo a descargar para evitar el factor de la DB.

Cualquier luz la agradecere.


Javascript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
function SaveFilePOD(){
 
    var file = document.getElementById("FilePOD").files[0];
 
    var formData = new FormData();
    formData.append('accion', 'save_file');
    formData.append('module', "2");
    formData.append('section', "7");
    formData.append('operation', "1");
    formData.append('operation_id', $("#txtOrderID").val() );
    formData.append('type', "2" );
    formData.append('file', file);
 
    $.ajax({
        type: "POST",
        url: "Controlador/ctrl-Core-Files.php",
        data: formData,
        processData: false,
        contentType: false,
        error: function(){
              alert("error petición ajax");
        },
        success: function(data){
            window.open(data);
            var blob=new Blob([data]);
            var link=document.createElement('a');
            link.href=window.URL.createObjectURL(blob);
            link.download="file.pdf";
            link.click();
        }
    });
 
    return false;
}


Con PHP este es el codigo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
case "save_file":
 
    require_once("../Modelo/clsFiles.php");
    $Files= new clsFiles();
 
    $imageFileName = $_FILES['file']['tmp_name'];
 
    $FileName = $_FILES['file']['name'];
    $imageFileType = pathinfo($_FILES["file"]["tmp_name"],PATHINFO_EXTENSION);
    $imageFileName = $_FILES['file']['tmp_name'];
 
    $fileSize = $_FILES['file']['size'];
    $fileExt = $_FILES['file']['type'];
    $fileType = $_FILES['file']['type'];
 
 
    // Read the file
    $fp = fopen($imageFileName, 'r');
    $data = fread($fp, filesize($imageFileName));
    $data = addslashes($data);
    fclose($fp);
 
    header("Content-Disposition: attachment; filename=Test.pdf");
    header("Content-length: $fileSize");
    header("Content-type: $fileType");
    echo $data;
 
    break;
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder