首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用AJAX和PHP生成.doc

如何使用AJAX和PHP生成.doc
EN

Stack Overflow用户
提问于 2018-06-23 18:39:52
回答 1查看 524关注 0票数 1

今天我需要一些帮助,我知道这并不是那么难,在这个网站上有很多用php做这件事的帮助,但我找不到使用AJAX的任何东西,我现在正在学习的技术,我想有一天掌握。

我的代码如下。

$(".descarga").click(function(){
    var paquete={idArchivo:$(this).val()};
    $.post("includes/descargarPublicacion.php",paquete,procesarDatos);
});

因此,当来自"descarga“类的按钮时,我生成了一个”数据包“,我将它与post方法一起使用,将数据发送到名为descargarPublicacion.php的php文件。

这是php文件的外观:

<?php 
session_start(); 
$mysqli = new mysqli("localhost", "root", "", "registroflashback");
if (isset($_GET['idArchivo'])) {
    header("Content-type: application/vnd.msword");
    header("Cache-Control: must-revalidate,post-check=0, pre-check=0");
    header("Content-disposition:attachment;filename=yeaboi.doc");
    header("Expires: 0");

    $idPubliGet=$_GET['idArchivo'];
    $resultadoBusqueda=$mysqli->query("SELECT * FROM publicaciones WHERE idPubli='$idPubliGet'");
    if ($resultadoBusqueda->num_rows>0) {
        //$resultadoBusqueda['titulo'];
        echo 'descarga exitosa';
    }else{
        echo 'descarga no exitosa';
    }
}else{
    echo 'descarga no exitosa';
}
?>

我做了一些研究,人们告诉我使用头文件来转换文件并下载它,但它对我不起作用,它不会生成任何文件,但它会执行"echo descarga exitosa“,我将其用作js文件中以下函数的返回值。

function procesarDatos(datos_devueltos){
    alert(datos_devueltos);
    if(datos_devueltos=="descarga exitosa"){
        $("#alertaDescarga").show(1000);
    }
    if(datos_devueltos!="descarga exitosa"){
         $("#alertaDescargaError").show(1000);
    }
}

如何使用ajax和jquery从html生成.doc文件?我知道我已经差不多了,它应该是一些细节,但我不知道哪一个是,这就是为什么我寻求一些经验丰富的帮助!谢谢!

EN

回答 1

Stack Overflow用户

发布于 2018-06-24 02:21:23

我不明白您为什么要通过ajax提供.doc文件。在我看来,只提供有效的.doc而不是普通的GET请求会更容易。

$(".descarga").click(function(){
    //onClick transfer id via Get-Param and download file
    window.location = "includes/descargarPublicacion.php?idArchivo="+$(this).val();
});

php部分(descargarPublicacion.php)

<?php 
if (isset($_GET['idArchivo'])) {
    header("Content-type: application/vnd.msword");
    header("Cache-Control: must-revalidate,post-check=0, pre-check=0");
    header("Content-disposition:attachment;filename=yeaboi.doc");
    header("Expires: 0");

    //ID is available via GET because we send it as Url Param
    $idPubliGet=$_GET['idArchivo'];

    //@TODO fetch relevant data with given ID

    //@TODO generate valid(!) doc File output 
    //- just echo'ing something will not result in an valid document for Word
    echo $coumentContent;       
}
?>

提供/生成有效的Word文档要稍微复杂一点。我建议你去找一个图书馆,它能为你做所有的工作。例如,https://github.com/PHPOffice/PHPWord

如果您只想提供一些简单的.txt文件--将头文件Content-Type更改为text/plain,将文件名更改为yeaboi.txt,并打印/回显文本内容

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51000353

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档