我有以下PHP代码在我的网站生成图像相册,而无需我手动创建它们:
<?php
$folder_path = 'assets/albums/album1/thumbnails/';
$num_files = glob($folder_path . "*.{jpg,gif,png,bmp}", GLOB_BRACE);
$folder = opendir($folder_path);
$folder_path_o = 'assets/albums/album1/';
$num_files_o = glob($folder_path_o . "*.{jpg,gif,png,bmp}", GLOB_BRACE);
$folder_o = opendir($folder_path_o);
if($num_files > 0)
{
while (false !== ($file = readdir($folder)) && ($file_o = readdir($folder_o))) {
$file_path = $folder_path.$file;
$extension = strtolower(pathinfo($file , PATHINFO_EXTENSION));
$file_path_o = $folder_path_o.$file_o;
$extension_o = strtolower(pathinfo($file_o , PATHINFO_EXTENSION));
if (($extension == 'jpg' || $extension == 'png' || $extension == 'gif' || $extension == 'bmp') && ($extension_o == 'jpg' || $extension == 'png' || $extension == 'gif' || $extension == 'bmp')) {
?>
<li><a href="<?php echo $file_path_o; ?>" data-lightbox="<?php echo $folder; ?>"><img src="<?php echo $file_path; ?>" alt="<?php echo $album_name; ?>"></a></li>
<?php
}
}
}
else {
echo "the folder was empty";
}
closedir($folder);
?>
这段代码在我的本地主机上运行得很好。然而,当我把它上传到服务器(共享托管在name.com与cPanel)它似乎只部分工作:
- 在本地,它生成整个相册,显示指定文件夹(
$folder_path
和folder_path_o
)的所有图像。 - 在服务器上,它只返回一个图像,而不是整个文件夹(这让我相信这不是一个权限相关的问题)
任何想法?如有任何帮助,不胜感激。
你可以检查它,它与服务器本身有关,你不能确保它。
switch ($_FILES['upfile']['error']) {
case UPLOAD_ERR_OK:
echo "Uploading success";
case UPLOAD_ERR_INI_SIZE:
echo "The uploaded file exceeds the upload_max_filesize directive in php.ini.";
case UPLOAD_ERR_FORM_SIZE:
echo "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form.";
case UPLOAD_ERR_NO_TMP_DIR:
echo "Missing a temporary folder.";
case UPLOAD_ERR_INI_SIZE:
echo "The uploaded file exceeds the upload_max_filesize directive in php.ini.";
case UPLOAD_ERR_CANT_WRITE:
echo "Failed to write file to disk";
default:
throw new RuntimeException('Unknown errors.');
}