我有一个问题,当我用PHP创建一个新的目录时,上传一个文件。
该目录已创建,但如果同一脚本的另一个实例同时运行,则目录存在检查不会正常工作(给出PHP警告)。
有人告诉我这是一个比赛条件,但我仍然有这个问题,因为我增加了一些随机睡眠时间。
usleep(mt_rand(1, 50));
if(!is_dir($dir)){
mkdir($dir);
}
usleep(mt_rand(1, 50));有人能帮上忙吗?
有没有人知道一个文件分成多个部分,同时上传3-4个部分的安全方法?目前,我将上传的部分移动到一个临时目录中(如果同时有更多的部分到达,则is_dir会在临时目录上失败),然后当该目录中的文件数量等于这些部分的组合数量时。但它失败了很多次,有时is_dir会发出警告,有时部件会组合两次……
发布于 2016-05-13 22:59:14
mkdir()成功时返回true,失败时返回false (目录已经存在)。所以你可以把它作为你的条件检查的一部分。
if (!is_dir($dir) && mkdir($dir)) {
// good to go
}发布于 2016-05-13 23:04:25
您希望在页面顶部使用clearstatcache()对目录进行测试,以便当前目录结构的系统缓存是最新的。read more here
javascript将文件分成多个部分,并向php发送4个ajax请求,因此php同时接收4个部分。当收到所有部分时,php应该将它们组合在一起,以便在服务器上重新生成文件。
那么为什么要将它们分开,将Ajax作为单个请求发送,然后允许PHP在自己的脚本中处理每个blob文件部分。这将回避这个问题。PHP - with the correct setting up -可以轻松地处理块中的大文件。
https://stackoverflow.com/questions/37213104
复制相似问题