上传文件时,我用PHP创建新目录时遇到问题。
目录已创建,但如果同一脚本的另一个实例同时运行,则目录存在检查无法正常工作(会发出PHP警告)。
有人告诉我这是一种种族状况,但在增加了一些随机睡眠时间后,我仍然有这个问题。
usleep(mt_rand(1, 50));
if(!is_dir($dir)){
mkdir($dir);
}
usleep(mt_rand(1, 50));
有人能帮忙吗?
有人知道一种安全的方法来上传一个文件的多个部分,3-4个部分同时上传吗?目前,我正在将上传的部分移动到一个临时目录中(如果同时有更多的部分到达,is_dir会在临时目录中失败),然后当该目录中的文件数量等于部分数量时,这些部分就会合并。但它失败了很多次,有时is_dir会发出警告,有时零件会组合两次。。。
mkdir()
在成功时返回true,在失败时返回false(dir已经存在)。所以你可以把它作为条件检查的一部分。
if (!is_dir($dir) && mkdir($dir)) {
// good to go
}
您希望在目录的页面测试顶部使用clearstatcache()
,以便当前目录结构的系统缓存是新鲜的。点击此处阅读更多
上传javascript将文件拆分为多个部分,并向php发送4个ajax请求,因此php同时接收4个部分。当收到所有部分时,php应该将它们组合起来,在服务器上复制文件
那么,为什么要将它们分开,将Ajax作为一个单独的请求发送,然后允许PHP在自己的脚本中处理每个blob文件部分呢。这将回避问题。PHP——有了正确的设置——可以轻松地处理大块块中的大文件。