【问题标题】:Why can I not create a directory using php?为什么我不能使用 php 创建目录?
【发布时间】:2011-07-13 11:11:03
【问题描述】:

我有一个表单,用户可以在其中上传图片。我有另一个页面已经可以工作,然后创建一个目录并将图像放入其中。出于某种原因,当我将相同的代码复制到当前页面时,它给了我以下错误:

警告:mkdir() [function.mkdir]:否 这样的文件或目录在 /home5/ideapale/public_html/amatorders_final/user_char_upload.php 在第 251 行

这是它所指的代码:

if (!file_exists("../upload/" . $order_id . '_' . $row['last_name'])) { //Checks if the directory already exists
    mkdir("../upload/" . $order_id . '_' . $row['last_name'], 0755); //Creates a new directory with the order_id and Customer last name
}

我尝试回显所有这些变量,所以我知道它们有效。

这对我来说似乎很简单,所以我不确定为什么 mkdir 函数在这个页面上对我不起作用。有什么想法吗?

【问题讨论】:

    标签: php forms directory mkdir


    【解决方案1】:

    使用mkdir和两个参数,为了创建目录a/b/c,目录a/b必须存在。

    如果您希望在尝试创建a/b/c 时创建a/b,则需要将true 作为第三个参数传递(称为recursive 的那个;-))mkdir


    如果您的upload 目录已经存在,那么,您需要确保../upload/ 确实是您的想法。

    这个../upload/ 是相对于当前执行目录的(不一定与包含你的脚本的目录相同!)


    您可能想尝试使用它:

    var_dump(realpath('../upload/'));
    

    检查该目录是否是您所想的——如果存在,它将显示其完整路径;否则为 false。

    【讨论】:

    • 谢谢!这解决了这个问题,但现在我收到了这个错误:[function.move-uploaded-file]: failed to open stream: HTTP wrapper does not support writeable connections
    • 不客气 :-) ;;好吧,这是另一个问题:您正试图将文件移动到远程位置,或者类似的东西? (最终,由于这是一个明显的问题,您可能想问一个不同的问题,包括代码示例等等)
    【解决方案2】:
    you are passing wrong path to the function man.
    

    即 move_upload_file($arg);

    如果你在 $arg 中给出错误的路径,它会按照你说的那样显示错误消息。

    【讨论】:

      猜你喜欢
      • 2015-05-02
      • 1970-01-01
      • 2015-01-25
      • 2011-04-29
      • 2012-11-22
      • 2019-02-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多