php 判断文件是否可以写入,PHP:如何检查当前是否正在写入文件

假设我有一个PHP脚本,它将提供一个大文件,我目前正在上传这个大文件,例如FTP.

如果上传完成,有没有办法可以检查我的PHP脚本?例如,有一种方法可以检查当前是否正在写入文件或类似的文件?

更新:之前应该提到这一点,但我不是在谈论通过上传脚本上传我正在谈论的例如通过FTP或SFTP等其他方式上传大型pdf文件.

解决方法:

您可以在上传脚本中使用一个临时文件(在temportantly目录中),如果上传完成,您可以简单地将文件移动到具有良好文件名的最终位置.

这是此问题的常见解决方案.

为了得到temportantly文件(环境独立)使用PHP函数:

resource tmpfile ( void )

但是如果你使用这个函数,你必须在关闭文件之前复制文件,因为当你调用fclose(handle)时这个文件被删除了.为了确保文件缓冲区是干净的,你可以在最后调用fflush(句柄).

或者,如果您不想使用tmpfile(void)函数,您可以手动执行此操作.

string tempnam ( string $dir, string $prefix )

前缀是文件的前缀,可以轻松地将她分组为删除或其他内容.调用此函数以获取类型目录中的唯一文件,因为目录在您的环境中获取临时目录,您可以通过调用以下命令获取:

string sys_get_temp_dir ( void )

然后当你有自己的tempfile时,写入它上传数据并关闭.

使用以下方法将此文件复制到最终位置:

bool copy ( string $source, string $dest [, resource $context ] )

并删除你的临时文件,以便在你的环境调用中获得干净:

bool unlink ( string $filename [, resource $context ] )

标签:php,file,file-io

来源: https://codeday.me/bug/20190705/1384256.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值