You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PHP中设置变量获取文件夹文件名并将PHP变量值传递到JS

实现步骤

1. PHP端读取目标目录文件列表

首先确保C:\xampp\htdocs\dump\uploads目录对PHP进程有可读权限,读取并过滤文件列表的代码如下:

<?php
// 定义目标目录,用正斜杠避免Windows反斜杠转义问题
$target_dir = "C:/xampp/htdocs/dump/uploads";
// 校验目录是否存在
if (!is_dir($target_dir)) {
    die("目标目录不存在");
}
// 读取目录条目,过滤.、..两个特殊目录,只保留真实文件/子目录,重置数组索引
$file_list = array_values(array_filter(scandir($target_dir), function($item) use ($target_dir) {
    // 若只需保留文件、排除子目录,可解开下一行注释
    // if (!is_file($target_dir . '/' . $item)) return false;
    return !in_array($item, ['.', '..']);
}));
?>

如果需要区分文件和子目录,可在过滤逻辑中额外加入is_file()或is_dir()判断。

2. PHP变量传递给JavaScript

分两种常用场景实现:

场景1:JS代码和PHP在同一页面

直接将PHP数组转成JSON格式输出给JS即可,JSON格式可被JS直接识别:

<script>
// JSON_UNESCAPED_UNICODE参数避免中文文件名被转义
const fileList = <?php echo json_encode($file_list, JSON_UNESCAPED_UNICODE); ?>;
// 测试打印文件列表
console.log(fileList);
</script>

场景2:JS为独立文件、需要异步获取

先单独写PHP接口文件get_file_list.php:

<?php
header('Content-Type: application/json; charset=utf-8');
$target_dir = "C:/xampp/htdocs/dump/uploads";
if (!is_dir($target_dir)) {
    echo json_encode([]);
    exit;
}
$file_list = array_values(array_filter(scandir($target_dir), function($item) use ($target_dir) {
    return !in_array($item, ['.', '..']);
}));
echo json_encode($file_list, JSON_UNESCAPED_UNICODE);
?>

JS端通过fetch请求获取数据:

fetch('/dump/get_file_list.php')
  .then(response => response.json())
  .then(fileList => {
    console.log(fileList);
    // 此处写后续业务逻辑
  });

注意事项

  • 生产环境需要增加权限校验,避免目录遍历漏洞、泄露敏感文件信息
  • 文件名存在特殊字符时,json_encode会自动做转义处理,无需额外手动过滤

内容的提问来源于stack exchange,提问作者Peter Playz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 00:06:02