我尝试使用PHP代码在heroku上创建一个文件:
$fh = fopen("../DownloadFiles/".$filename,'a');
fwrite($fh,$s);
但该文件尚未创建且未显示任何错误。请帮忙。
答案 0 :(得分:0)
这应该可以正常工作,但是你知道如果你运行多个dynos,那个文件只会存在于服务于那个请求的dyno上,而不会存在于所有其他dyno上吗?
此外,Dynos每24小时重新启动一次,每次将更改推送到Heroku时都会重置其状态,因此您无法在其上存储持久信息;这被称为短暂的文件系统。
例如,您可以将上传的文件存储在Amazon S3上,如文档中所述:https://devcenter.heroku.com/articles/s3-upload-php
关于你原始问题的两个评论:
heroku logs
中看到任何内容,并且不可能以其他方式配置它;升级到更新版本,该版本允许您登录到流,然后使用php://stderr
作为目标file_put_contents($filename, $contents)
... 答案 1 :(得分:-1)
部署中是否存在DownloadFiles文件夹?如果找不到目录,则节点fs会出错。您可以添加一个片段来检查dir是否存在,如果不存在则创建。您可以使用fs.exists和fs.mkdir。