我正在尝试从文本区域创建一些HTML代码并将其存储到文件中
如果PHP文件中的 fopen
方法尚不存在,但无法在Laravel 5.7中正常工作,则会创建该文件
这是我的演示代码
$plugin_html_file_nm = "plugin_html".time().".html";
$html_plugin = fopen("/public/plugin_html_storage/".$plugin_html_file_nm,"w");
fwrite($html_plugin,$request->input('plugin_html'));
$plugin->plugin_html = $plugin_html_file_nm;
给出此错误fopen(/public/plugin_html_storage/plugin_html1546535810.html): failed to open stream: No such file or directory
有人可以帮助我吗?
答案 0 :(得分:2)
Laravel提供了一个帮助者public_path()
public_path函数将返回标准路径。 公共目录。您也可以使用public_path函数 在公共场所生成给定文件的标准路径 目录
也许您需要添加完整路径。所以:
$html_plugin = fopen(public_path("plugin_html_storage/.$plugin_html_file_nm"),"w");
此外,请确保您具有书面特权。如PHP documentation所述:
PHP必须可以访问该文件,因此您需要确保文件访问权限允许该访问。
答案 1 :(得分:0)
默认情况下,您的laravel应用是从公共目录提供的。
因此,为了实现您要执行的操作,请替换
myTable <- tableGrob(
df,
rows = NULL,
theme = ttheme_default(core = list(bg_params = list(fill = "grey99")))
)
grid.draw(myTable)
具有:
$html_plugin = fopen("/public/plugin_html_storage/".$plugin_html_file_nm,"w");
注意:应该在 public 目录中创建 plugin_html_storage 目录,以确保操作不会失败。
答案 2 :(得分:0)
你只需要添加相对路径。
$html_plugin = fopen("../public/plugin_html_storage/".$plugin_html_file_nm,"w");