2

环境信息:
*Windows Vista
*PHP 5.2.9-2

我正在做一个项目。假设它的名称只是“项目”。我的用于用户交互的 php 文件位于

项目/文件.php

现在,我有一个数据库和一些地图,它们通常包含类和配置文件。还有一张供用户使用的地图,我在其中存储他们可能上传的图像。例如:

项目/文件/用户/0/profilePic.jpg

该数字对应于数据库中的 user_id。

我的register.php文件包含这行代码:

mkdir('/files/Users/'.$id)

变量是数据库中最大的$idid号加1。

但它不会起作用。我检查了文件夹,我有读写权限(我是我机器上的管理员)。

我究竟做错了什么?

注意:告诉我有更好的组织方式的权利,这个保留给那些能给我一个有帮助的答案的人。:P

4

4 回答 4

8

那这个呢?

mkdir('c:/files/Users/'.$id)
于 2009-08-24T20:11:09.573 回答
2

几种可能性:

  1. 丢失第一个 / 因为它给出了一个绝对路径并且你正在寻找一个相对路径 - 所以 mkdir('files/Users/'.$id)
  2. 文件/用户是否已经存在(即,是否已经存在用户 0、用户 1 等)?如果没有,您需要先创建它们或执行 mkdir('files/Users/'.$id, 077, true) 以递归创建目录。
于 2009-08-24T20:18:39.760 回答
1

在 Windows 中,路径不以“/”开头,而是以驱动器号开头。只需删除第一个斜线(因此 '/files/users/' 变为 'files/users/')。

此外,马克所说的。

于 2009-08-24T20:20:42.487 回答
0

PHP 声明它在系统之间转换 / 时做出了最好的尝试。通过做:

mkdir('/files/users');

让 PHP 误以为它在 *NIX 系统上。通过将 root 设置为 c:,它现在能够正确解析参数并推断它是一个 windows 系统

于 2009-08-24T20:27:16.700 回答