Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.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_Php_Javascript_Foreach - Fatal编程技术网

每个下载文件的PHP

每个下载文件的PHP,php,javascript,foreach,Php,Javascript,Foreach,我要么使用了错误的语法,要么使用了错误的方法 在引用此php文件的html文档中,有一个简单的复选框列表。用户选中复选框并点击submit。这样做的目的是提示用户运行或保存每个文件。如果我勾选test1.txt、test2.txt和test3.txt,每个都应该有一个弹出窗口(当然假设浏览器是IE) 问题是,只有“最后一个”复选标记的项目被下载,其余的则没有。我想为找到的每个文件打开一个弹出窗口,但没有效果。如果我使用echo$filename,那么它将正确显示我选中的每个条目,这样php脚本似

我要么使用了错误的语法,要么使用了错误的方法

在引用此php文件的html文档中,有一个简单的复选框列表。用户选中复选框并点击submit。这样做的目的是提示用户运行或保存每个文件。如果我勾选test1.txt、test2.txt和test3.txt,每个都应该有一个弹出窗口(当然假设浏览器是IE)

问题是,只有“最后一个”复选标记的项目被下载,其余的则没有。我想为找到的每个文件打开一个弹出窗口,但没有效果。如果我使用echo$filename,那么它将正确显示我选中的每个条目,这样php脚本似乎正确地给出了多个文件名。有人能给我指出正确的方向吗?我很确定window.open参数中的$filename现在也没有以正确的语法使用

以下是脚本:

<?php

foreach($_POST['files'] as $filename) {

echo "<SCRIPT language=\"JavaScript1.2\">function openwindow() {window.open ('$filename', 'execute','location=1,status=1,scrollbars=1, width=500,height=500');}</script><body onload=\"openwindow()\"></body>";

  }

?>
应该有效

<html>
<head>
<script>
function openwindow(filename) {window.open (filename, 'execute','location=1,status=1,scrollbars=1, width=500,height=500');}

<?php
foreach($_POST['files'] as $filename) {

echo "openwindow('".$filename."');";

}
?>

</script>
</head>

函数openwindow(文件名){window.open(文件名'execute','location=1,status=1,scrollbars=1,width=500,height=500');}

您只是重复地用新定义覆盖
openwindow()
函数。您也不能有多个
元素。fopen()是更好的选择吗?我试过了,但不断出现许可错误。用于测试的目录被设置为777,PHPINI文件中的fopen选项被设置为ON(启用)。一定有比使用javascript更好的方法,对吧?呃,
fopen
window.open
做很多不同的事情
fopen
不会在用户浏览器上执行任何操作。服务器端在每次循环迭代中更改窗口的名称(即,
'execute'
)。如果你保持相同的窗口名,它引用相同的窗口。再说一次,我从未见过一个网页能够一次下载多个文件。似乎是浏览器可以阻止的事情。也许更好的解决方案是压缩文件并下载压缩包。
可以替换为
。您提供的代码似乎正常工作,但它似乎只打开最后选中的项目。例如,如果我检查同一目录下的test1.txt和test2.txt,它只会弹出一个test2.txt窗口-test1.txt似乎被忽略,或者它的启动命令被“覆盖”,因为没有更好的术语忽略以前的注释-它在重新启动chrome和IE后工作-可能是缓存。谢谢你的努力!