我正在使用带有 PHP 的 AgileUploader 来允许用户上传图像。我的脚本检查文件夹是否存在,如果不存在,则根据用户会话 ID 创建文件夹。从那里它允许用户上传一个文件,该文件将该文件复制到 3 种不同的大小。
在 99.8% 的时间里,一切都很好,但是,现在有两次(成千上万次),我有一个上传文件夹复制根图像文件夹。我的文件夹结构是:
temp/images/sessionid/large
temp/images/sessionid/medium
temp/images/sessionid/thumbnails
该问题有时会导致:
temp/images/sessionid/sessionid/sessionid/ALL OTHER FOLDERS IN temp/images/
我认为这可能是会话问题,但正在使用有效的会话 ID 创建文件夹。
我正在运行 3 个网络服务器,它们都相互同步,并且复制问题导致同步有效图像的一些延迟,因为它复制了根临时/图像中的每个文件夹和文件。
然后我认为这可能是我的调整器放弃路径的问题:
$listing_image = glob($temp_main_folder . "/large/*.{jpg,gif,png}", GLOB_BRACE);
if(count($listing_image) < 7){
if(move_uploaded_file($tmp_name, "$temp_main_folder/large/$name")){
$resizeObj = new resize("$temp_main_folder/large/$name");
$resizeObj -> resizeImage(350, 350, 'auto');
$resizeObj -> saveImage("$temp_main_folder/medium/$name", 90);
$resizeObj -> resizeImage(120, 120, 'auto');
$resizeObj -> saveImage("$temp_main_folder/thumbnails/$name", 90);
}
}
无论如何,就像我说的那样,它可以工作 99.8%,所以我不认为它是任何代码的问题……但话又说回来,它失败了两次。
我的问题是,PHP 有没有办法在使用 mkdir 或限制子文件夹和文件的数量时限制文件夹大小?或者在上传文件时关于其他一些验证技术的任何建议。
每个文件夹总是有 3 个子文件夹,每个子文件夹最多有 6 个文件,每个文件的大小最大为 1mb。