提问人:Chris Copland 提问时间:11/5/2023 最后编辑:PippoChris Copland 更新时间:11/5/2023 访问量:34
如何获取 PHP 脚本以在保存文件后在新的浏览器窗口中打开文件
How Can I Get a PHP script to open a file in a new browser window after it saves it
问:
- 我在 WAMP64 的 virtualhost 目录中有一个表单填充器 .php 文件。文档的大小与 A4 页面的大小完全相同,并且看起来与模板文件完全相同,只是它具有占位符位于模板文件中的表单字段.html(这基本上是 A4 信头)
- 当用户单击“创建”按钮时,表单数据将发送到form_filler.php脚本。
- form_filler.php接收数据并将其输入到占位符中,如 [date] 和“模板文件.html中的其他占位符。
- 然后,它将包含新信息的文件保存到我的通信记录的命名目录中。
- 然后它会显示一个警告框,告诉我: (“表单数据已应用于信笺抬头并已成功保存! 在这一点上,我现在已经保存了我的文件,可以通过转到记录文件夹来访问它,在浏览器中打开文件并使用pdfSam Enhanced打印出来。
我想要的是这些解决方案中的任何一种。
若要在 form_saver.php 文件中添加其他代码,完成后将显示“是”或“取消”选项供用户选择: 如果他们选择“是”,则脚本将在浏览器和打印对话框中打开新保存的文件。如果他们选择取消,则选项框将关闭。
如果脚本甚至可以在新的浏览器窗口中打开文件,则用户可以在校对文档后选择打印
我代码的最后一部分是:
// Save the modified content to the file
if (file_put_contents($filepath, $templateContent) !== false) {
// File saved successfully
echo 'Form data has been applied to the letterhead and saved successfully!';
} else {
// Handle file save error
echo 'Error: Failed to save the file.';
}
} else {
echo 'Invalid request.';
}
?>
我遇到的问题是,尽管我尝试了javascript,窗口打开和标题位置选项,但它们会导致: 阻止跨域请求:同源策略不允许读取 http://localhost/bizadmin/php/testfile.html 的远程资源。(原因:缺少 CORS 标头“Access-Control-Allow-Origin”)。状态代码:200。
我尝试使用变量$testFilePath它确实找到了文件,但只在警报框中重现了它:
<?php
// Open the test file in a new browser window/tab
echo '<script>window.open("' . $testFilePath . '", "_blank"); </script>';
} else {
// Handle file save error
echo 'Error: Failed to save the file.';
}
} else {
echo 'Invalid request.';
}
?>
===========我尝试过使用测试文件========
重定向到文件:
// Redirect to the HTML file.
header('Location: http://localhost/mydirectory/php/testfile.html');
==和
// Send the CORS header.
header('Access-Control-Allow-Origin: *');
// Check the referer.
if ($_SERVER['HTTP_REFERER'] !== 'http://localhost/bizadmin/letterhead- formfiller-v2.php') {
header('HTTP/1.0 403 Forbidden');
exit();
}
?>
没有效果 我相信一定有一种方法可以使用 wamp64 在我的本地机器上做到这一点, 有什么指导会很棒吗?
答: 暂无答案
评论
http://localhost/
Location