我正在尝试使用PHP打开文件。事实是该文件正确保存在服务器上,但是当我想通过PHP打开时,用户可以下载/查看它,它还显示了代码中完成的其他操作。如果有人有想法,那对我来说将是很大的帮助。
这是我的代码:
<?php
echo"<form method='post'><p>"; // Inicio de FORM
foreach ($ini_array as $section => $value){ // Para cada $section en el $ini_array
if ($section == 'FILE') { // Ignorar la $section de pos 0 donde estan los datos del [FILE]
continue;
}
if ($ini_array[$section]['Edit'] == false) { // Condición si está disabled el input o no // ARREGLAR PARA PARAMS QUE NO TIENEN VALOR POR DEFECTO PERO SI PUEDEN TOMAR INPUT
$default_value_control = 'disabled';
}else{
$default_value_control = '';
}
echo
"<div class='container'><input type=".$ini_array[$section]['Obj']." name='".$section."' value='".$ini_array[$section]['Value']."' ".$default_value_control. ">".$ini_array[$section]['Desc']."</div><div class='tooltip'>?<span class='tooltiptext'>".$ini_array[$section]['Help']."</span></div> <br>";
}
if (isset($_POST['ExecCmd'])){
try{
ini_set("display_errors", 0);
$cmd=$ini_array['FILE']['Path']." ";
foreach ($ini_array as $section => $value){
$manualinput=$_POST[$section];
if (!empty($manualinput)){
$cmd.=" ".$ini_array[$section]['Flag']." ".$manualinput;
}
}
}
finally { ini_set("display_errors", 1);
}
$myfile = fopen("output.csv", "w") or die("Unable to open file!");
//echo $cmd;
$command = escapeshellcmd($cmd); // Ejecutamos el archivo y también la concatenación anterior de $argFinal
$output = shell_exec($command);
echo $output;
fwrite($myfile, $output);
fclose($myfile);
$file_url = 'output.csv';
header('Content-Type: text/csv');
header("Content-Transfer-Encoding: Binary");
header("Content-disposition: attachment; filename=\"" . basename($file_url) . "\"");
readfile($file_url);
}
echo "<button name='ExecCmd'>Execute</button></p></form>";
?>
就我而言,当使用chrome访问页面时,这些代码可以正常工作。
但是,当我尝试从PHP下载/打开文件时,它也会在输出文件上打印我页面的代码PHP。我正是这个意思。
这是另一个问题~~!