Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用php和polymer下载一个文件_Php_Polymer 1.0_Webclient Download - Fatal编程技术网

使用php和polymer下载一个文件

使用php和polymer下载一个文件,php,polymer-1.0,webclient-download,Php,Polymer 1.0,Webclient Download,这个我有点麻烦。我在网上找到了一些有用的脚本,并根据我的需要对它们进行了修改。但是,我似乎无法下载文件。它将以文件内容进行响应,但不会下载。我在客户端使用Polymer 1.0+,服务器端使用PHP。下载文件的客户端代码如下所示: <!--THIS IS THE HTML SIDE--> <iron-ajax id="ajaxDownloadItem" url="../../../dropFilesBackend/index.p

这个我有点麻烦。我在网上找到了一些有用的脚本,并根据我的需要对它们进行了修改。但是,我似乎无法下载文件。它将以文件内容进行响应,但不会下载。我在客户端使用Polymer 1.0+,服务器端使用PHP。下载文件的客户端代码如下所示:

   <!--THIS IS THE HTML SIDE-->
   <iron-ajax   
        id="ajaxDownloadItem"
        url="../../../dropFilesBackend/index.php/main/DownloadItem"
        method="GET"
        handle-as="document"
        last-response="{{downloadResponse}}"
        on-response="ajaxDownloadItemResponse">
    </iron-ajax>

//THIS IS THE JAVASCRIPT THAT WILL CALL THE "iron-ajax" ELEMENT
downloadItem:function(e){ 
    this.$.ajaxDownloadItem.params = {"FILENAME":this.selectedItem.FILENAME,
                                      "PATH":this.folder};
    this.$.ajaxDownloadItem.generateRequest();
},

在此方面的任何帮助都将不胜感激。

首先,您需要文件句柄

$pathToSave = '/home/something/something.txt';

$writeHandle = fopen($pathToSave, 'wb');
然后,当您阅读下载时,写入文件,而不是回显

fwrite($writeHandle, fread($fd, 2048));
最后,在写入文件完成后关闭句柄

fclose($writeHandle);

我忽略了错误检查,您应该实现自己的错误检查。

您需要编写读取。这非常有效。我测试了多种类型。但是,我希望在浏览器中进行某种形式的下载,这样我就可以看到它正在发生,而不是在没有视觉更新的情况下在幕后发生。我可以通过浏览器打开php代码的url来下载它,而无需使用iron ajax。例如:window.location.href=“path/to/php/function”;
fclose($writeHandle);