当前位置: 首页 > 知识库问答 >
问题:

动态文件名当使用file_put_contents()时,可能吗?

孟乐逸
2023-03-14

好的,所以我试图完成以下任务:

  • 从名为skift的表单中根据当前日期+当前时间+变量生成文件名的PDF。
  • 将所述文件放在名为skiftrapportPDF的静态文件夹中,并将其放在名为YearMonth examle(201404)
  • 的子文件夹中

我把一个名为$filename的变量放在together,当我回显$filename时,我得到以下结果。

/skiftrapportPDF/201404/Skiftrapport2014-04-16_125449-Orange.pdf
        $dir = dirname(__FILE__);
        $skift = $_POST['skift'];
        $datum = Date("Y-m-d");
        $tid = Date("H:i:s");
        if($skift=='1')$skift='Svart';if($skift=='2')$skift='Blå';if($skift=='3')$skift='Röd';if($skift=='4')$skift='Orange';

        //this is when i have generated my $html
        require_once($dir.'/skift_rapport_pdf.php');

        require_once($dir.'/include/dompdf/dompdf_config.inc.php');  

        $dompdf = new DOMPDF(); // Create new instance of dompdf  
        $dompdf->load_html($html); // Load the html  
        $dompdf->render(); // Parse the html, convert to PDF  
        $pdf_content = $dompdf->output(); // Put contents of pdf into variable for later

        $month  = date('Ym');

        if (!is_dir("skiftrapportPDF/".$month)) {
          // dir doesn't exist, make it
          mkdir("skiftrapportPDF/".$month);
}
        $skift = $_POST['skift'];
        $datum = Date("Y-m-d");
        $tid = Date("His");
        if($skift=='1')$skift='Svart';if($skift=='2')$skift='Blå';if($skift=='3')$skift='Röd';if($skift=='4')$skift='Orange';
        $filename = '/skiftrapportPDF/'.$month.'/Skiftrapport'.$datum.'_'.$tid.'-'.$skift.'.pdf';

    //I've tried using either of the following....
    file_put_contents($filename, $pdf_content);
    //Commented to try using file_put_contents()
    //$fp = fopen($filename, "a"); 
    //fwrite($fp, $pdf_content); 
    //fclose($fp);
Warning: fopen(/skiftrapportPDF/201404/Skiftrapport2014-04-16_125449-Orange.pdf) [function.fopen]: failed to open stream: No such file or directory in file.php on line 863

使用file_put_contents()给了我这个错误。

Warning: file_put_contents(/skiftrapportPDF/201404/Skiftrapport2014-04-16_144631-Orange.pdf) [function.file-put-contents]: failed to open stream: No such file or directory in file.php on line 857

共有1个答案

柯捷
2023-03-14

您只需要重写以下行。

或者写下面的方式,

这两个都对你有用。随便一个试试

 类似资料:
  • 这是我的主要html文件; 这里是ajaxshow.js; 这里是PHP文件; 当我用静态超文本标记语言加载图像时(注释掉),它工作正常。当我运行上面的代码时,它会加载目录中的第一个图像,但它不可拖动或调整大小。当我从PHP文件的回声部分取出类ID时。它可以加载图像,但当然它们是不可拖动或调整大小的。有人能帮忙吗。非常感谢。尼尔。

  • 问题内容: 当前,当浏览器浏览器浏览到网页时,我正在运行一个php脚本。我想做的是在脚本运行时编写一个存储变量的文本文件。文件夹的所有者是apache,但每个人都具有读写功能,严格出于测试目的。(我认为这可能是权限问题)服务器上启用了SELINUX,当我从控制台运行脚本时,它会在正确的目录中很好地创建文本文件。 我正在使用此行尝试编写和创建文本文件,我知道我的文件位置可以正常运行,因为我可以在脱机

  • 问题内容: 我知道这不是应该做的事情,但是有没有办法使用斜线字符来分隔Linux中文件名中的目录? 问题答案: 答案是,除非文件系统有错误,否则您将无法这样做。原因如下: 有一个系统调用,用于重命名名为的文件: 当系统调用被调用时,它将对名称进行路径查找()。继续跟踪,我们可以看到: 此代码适用于任何文件系统。什么意思 这意味着,如果您尝试使用传统方式将带有实际字符的参数作为文件名传递,它将无法执

  • 问题内容: 是否有可能在运行时使用MDC命名日志文件。 我有一个单独的Web应用程序,该应用程序同时使用tomcat docbase被不同的名称调用。因此,我需要为每个文件设置单独的日志文件。 问题答案: 这可以在Logback(Log4J的后继者)中完成。 Logback旨在作为流行的log4j项目的后继者,从log4j离开的地方接手。 请参阅文档筛选器 SiftingAppender在引用和配

  • 问题内容: 我正在Node.js中构建文本编辑器,用户可以在其中在textarea中创建文件。完成文件编辑后,他可以按下“导出”按钮,该按钮触发一个Jquery函数,该函数读取textarea并将文本发布到node.js服务器上。服务器应读取该信息并返回文件。我想避免在服务器上创建文件并提供服务,而是希望使用流动态创建文件。我已经尝试使用以下方法,但是没有用: 有人对如何实现这一目标有任何见识吗?

  • 如果Springbean配置发生变化,有没有办法动态更新Springbean? 例如,假设我有一个具有布尔属性的Springbean,当应用程序启动时,Springbean的值为。 因此spring创建了属性设置为true的bean。 是否有一种方法可以使我在应用程序运行时将属性更改为,该属性将被更新,例如更改为?