1

我正在尝试将 Uploadify(一个 jQuery 插件)与我的 CakePHP 应用程序一起使用。在本地(WampServer),它工作得很好,但是当我在我的实时服务器(Dreamhost)上尝试它时,文件没有显示出来。我已经正确地修改了文件夹,检查了路径等,但我无法理解为什么它不起作用。这是upload.php:

if (!empty($_FILES)) {
    $tempFile = $_FILES['Filedata']['tmp_name'];
    $targetPath = $_SERVER['DOCUMENT_ROOT'] . "/app/webroot/posts/temp/";
    $targetFile =  str_replace('//','/',$targetPath) . $_FILES['Filedata']['name'];

    $targetFile = str_replace(".", "_" . mt_rand(10000000,99999999) . ".", $targetFile);

    move_uploaded_file($tempFile,$targetFile);
}
echo "1";

该脚本肯定正在运行,但我查看了指定的文件夹(以及整个文件系统),但上传的文件没有显示!这让我发疯——希望有人能回答这个问题。如果我应该发布更多代码,请告诉我,我会的。

4

2 回答 2

2

您可以更改 $targetPath 使其相对于文档而不是确切的服务器路径。不久前我遇到了类似的问题。

于 2009-07-24T02:15:07.027 回答
2

原来,是这一行:

$targetFile = str_replace(".", "_" . mt_rand(10000000,99999999) . ".", $targetFile);

此行旨在将一系列随机数字附加到文件名以避免冲突。但是,如您所见,它在整个路径上运行,而不仅仅是文件名。好吧,我的域名在我的路径中(即 mydomain.com),因此正在对 mydomain_12314123402.com 进行更改,这显然是一条不存在的路径。

伙计,我觉得自己像个白痴!

于 2009-07-24T02:19:56.083 回答