Uploadify和PHP FTP-$\u请求[';文件夹';]未通过

Uploadify和PHP FTP-$\u请求[';文件夹';]未通过,php,jquery,uploadify,Php,Jquery,Uploadify,我正在尝试使用uploadify和FTP连接来上传文件。我意识到目录没有被创建,因为js中的“folder”变量没有被传递。我想知道这是否是一个范围的事情。无论如何,这里是js: $("#uploadify").uploadify({ 'uploader' : '/lib/jquery.uploadify-v2.1.0/uploadify.swf', 'script' : '/lib/jquery.uploadify-v2.1.0/uploadify.php', 'c

我正在尝试使用uploadify和FTP连接来上传文件。我意识到目录没有被创建,因为js中的“folder”变量没有被传递。我想知道这是否是一个范围的事情。无论如何,这里是js:

$("#uploadify").uploadify({
'uploader'       : '/lib/jquery.uploadify-v2.1.0/uploadify.swf',
'script'         : '/lib/jquery.uploadify-v2.1.0/uploadify.php',
'cancelImg'      : '/lib/jquery.uploadify-v2.1.0/example/cancel.png',
'folder'         : '<?=time()?>',
'queueID'        : 'fileQueue',
'multi'          : true
我收到一个错误--“ftp_mkdir():无法创建目录。”

我确实检查了一下time()是否得到了回响,确实如此。如果我在那里硬编码一个普通字符串,它就会失败。但是,如果我将$dir更改为等于“which”(而不是request),则将创建目录,但它不会接受request参数。我也试着去发邮件


如果我不使用FTP,也可以使用相同的场景,只需将页面上传到服务器即可–没有问题。

您可以通过两种方式进行诊断:

  • 确保PHP正在访问您认为它正在访问的路径
  • 确保该路径中存在
    send files
    ,并且该路径是可写的
  • 从您的错误消息来看,您可能正在Linux或Mac机箱(我猜是Mac)上运行服务器。您是否知道
    发送文件
    目录确实存在?您可能需要检查并确保
    send files
    位于PHP正在使用的当前工作目录中:

    <?php
    print getcwd();
    ?>
    
    
    
    使用上面的代码创建一个文件,在浏览器中访问,如果结果与实际包含
    发送文件的目录/路径不同,您可以在PHP脚本中执行以下两项操作之一进行上载:

  • 将PHP当前工作目录更改为发送文件的路径:
    chdir('/Users/user/Sites/directory/with/send files/')
    。您应该能够将它放在uploadify PHP脚本的顶部,它应该可以工作。但如果没有,请发帖,我可以帮你找出原因
  • 在上面PHP脚本中的
    getcwd()
    调用的任何路径中创建
    send文件
  • 在任何一种情况下,您都需要确保目录
    send files
    存在,并且PHP具有写入该目录的权限。上面的任何一个选项都将有助于第一部分,确保路径存在

    然后我们进入第二部分。我们需要确保该目录可由PHP脚本写入。我们将
    chmod
    文件,以便它们是可写的。至少有两种方法可以做到这一点:

  • 如果您知道如何使用命令行/Mac的终端应用程序,请启动它并将
    cd
    发送到
    send files
    所在的目录:
    cd/Users/user/Sites/path/to/send files
    (但在本例中,您希望
    cd
    插入/插入,而不是/send files;]),然后执行此命令:
    chmod chmod-R 777 send files
  • 如果您不知道如何使用命令行,请学习。它非常有用。但现在,如果您在Mac电脑上,请使用Finder浏览到
    send files
    所在的目录。右键单击
    发送文件
    ,然后单击“获取信息”。在信息窗格的底部,展开“共享和权限”部分。单击“信息”窗格右下角的锁,然后输入密码以解锁权限选项,以便您可以编辑它们。将“权限”列中的每个项目更改为“读写”选项。这将使该目录及其所有内容可读/写

  • 然后再次尝试上载文件,看看文件是否在那里结束。它起作用了吗?

    时间的格式是什么?就路径名而言,它可能包含无效字符,这在您使用的任何操作系统上都是不允许的。当我回显out time()时,它只包含数字--“1284220390”。更奇怪的是。在不使用ajax的情况下,如果我直接转到php文件并将?folder=1284220390添加到URL,则会拾取请求并创建文件夹。可能是time()需要转换为字符串,还是它已经是字符串了?另外,我可以将文件夹编辑为:“'folder':'test'”,但它不起作用。这是一个更新。我收到的响应警告:ftp_mkdir():无法创建目录。在第57行的/Users/user/Sites/site/lib/jquery.uploadify-v2.1.0/uploadify.php中。创建/发送文件/1284224865时出现问题,因此正在通过,但我不确定错误是什么。就像我说的,如果我在php中使用time(),它就会工作。只有当时间()通过uploadify ajax时,它才会失败。
    <?php
    print getcwd();
    ?>