我正在尝试使用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
});
PHP:
$dir = $_REQUEST['folder'];
if (!ftp_mkdir($conn_id, $dir)) {
echo "There was a problem while creating $dir\n";
} else {
echo "successfully created $dir\n";
}
我收到错误 - “ftp_mkdir():无法创建目录。”
我确实检查了时间()是否得到了回应而且确实如此。如果我硬编码一个普通的字符串就会失败。但是如果我将$ dir更改为等于“what”(而不是请求),则会创建目录,但它不会接受请求参数。我也试着上传和发布。
如果我不使用FTP,只需上传到服务器就可以使用相同的方案 - 没有任何问题。
答案 0 :(得分:0)
您可以做两件事来诊断:
send-files
并且它是全球可写的。从您的错误消息中看起来您可能正在Linux或Mac机器上运行您的服务器(我猜Mac)。你知道send-files
目录肯定存在吗?您可能需要检查并确保send-files
位于PHP正在使用的当前工作目录中:
<?php
print getcwd();
?>
使用上面的代码创建一个文件,在浏览器中访问它,如果结果与实际包含send-files
的目录/路径不同,您可以在PHP脚本中执行以下两项操作之一来进行uploadify :
chdir('/Users/user/Sites/directory/with/send-files/')
。您应该只能将它放在uploadify PHP脚本的顶部,它应该可以工作。但如果没有,发帖,我可以帮助你找出原因。 ] send-files
调用的任何路径结果中创建getcwd()
。在任何一种情况下,您都需要确保目录send-files
存在且PHP有权写入该目录。上述任何一个选项都有助于第一部分,确保路径存在。
然后我们进入第二部分。我们需要确保PHP脚本可以写入该目录。我们chmod
这些文件是世界可写的。至少有两种方法可以做到这一点:
cd
到send-files
所在的目录:cd /Users/user/Sites/path/to/send-files
(但在此示例中为您' d想要cd
进入/去,而不是/ send-files;])然后执行:chmod -R 777 send-files
send-files
所在的目录。右键单击send-files
,然后单击“获取信息”。在“信息”窗格的底部,展开“共享和权限”部分。单击“信息”窗格右下角的锁定,然后输入密码以解锁权限选项,以便您可以编辑它们。将权限列中的每个项目更改为“读取和写入”选项。这将使该目录及其所有内容可读/写。然后尝试再次上传文件,看看文件是否结束。它有效吗?