首页 > 如何在 PHP Shell 脚本中生成一个文件并上传到服务器?

如何在 PHP Shell 脚本中生成一个文件并上传到服务器?

我需要通过 PHP 脚本生成一个文件(如 excel )并上传到服务器,供用户下载。

一般文件不大的情况,用户在页面上点击下载,再去数据库取数据,设置 heder 头以流的形式输出到浏览器,并且制定文件类型的方式下载,这当然是可以的,但是问题是现在生成一个文件可能非常大,并且很耗时,所以要做成异步的方式,用户点击下载就入一个任务到队列,在 Shell 脚本中以计划任务的形式读取队列任务,然后生成一个文件并且上传到服务器呢,这种情况如何解决?

我尝试在 PHP 中创建一个临时文件,把数据写到临时文件,但是发现这个临时文件是 resource 类型,无法通过上次函数上传,函数参数要求必须是目录名称,而传进去的是资源型


1、shell 脚本肯定是跑在服务器上的吧,那么生成的文件肯定也是在服务器上的吧,为什么会存在还需要把文件上传到服务器这个问题?除非是两台服务器?

2、你通过 php 生成一个文件之后,类似通过 tmpfile 等方法操作,返回的确是 resource 类型,但是你难道不知道 你生成的临时文件的路径?
我给个思路

$temp_file = tempnam(sys_get_temp_dir(), 'Tux');
file_put_contents($temp_file,'****');

3、我不建议使用临时文件的方式,你可以在一个具体的目录,根据年月日时分秒生成文件,这样也方便你管理。

【热门文章】
【热门文章】