jQuery uploadify I / O错误UNIX

时间:2010-07-05 05:46:19

标签: php jquery unix uploadify

我遇到了jQuery uploadify脚本的问题,但我找不到任何解决方案。 我已经将这个脚本集成到我的项目中,并且在Windows服务器(localhost)上一切正常,但是当我尝试在UNIX服务器上运行它时,I / O错误就会增加。 这只发生在我尝试上传上传文件夹中已存在的文件时。在Windows上,文件被覆盖,但是我得到了UNIX和I / O错误。

如果您有任何解决方案,我将非常感激。

这是我认为是问题的服务器端代码(PHP代码):

if (!empty($_FILES)) {
    $tempFile = $_FILES['Filedata']['tmp_name'];
    $targetPath = $_SERVER['DOCUMENT_ROOT'].$_REQUEST['folder'].'/';
    $targetFile = str_replace('//', '/', $targetPath).$_FILES['Filedata']['name'];

    if (file_exists($targetFile)) unlink($targetFile);
    copy($tempFile, $targetFile);
    echo "1";
}

3 个答案:

答案 0 :(得分:0)

首先要检查几件事:

  • 哪个用户拥有该文件?
  • 哪个用户拥有该文件所在的目录?
  • 哪个用户正在运行您的PHP脚本?
  • 文件本身的权限是什么?
  • 该文件所在目录的权限是什么?

我问这些问题的原因是因为它可能是一个简单的权限问题。运行目标文件的unlink和文件创建的用户将需要对目录的写访问权。运行脚本的用户可能拥有该目录或文件的用户,在这种情况下,您可能需要稍微打开一些权限。

当然,这只是我的猜想,但这是我要找的第一件事。

答案 1 :(得分:0)

首先,您应该使用move_uploaded_file而不是副本。

但最有可能的问题是由于权限问题。你可以将任何文件上传到该文件夹​​吗?您是否检查过文件夹中已有的文件(您要覆盖的文件)与新上传的文件具有相同的权限?我的猜测是你使用(S)FTP将文件复制到文件夹,并且他们拥有不同的所有者/权限,因此你无法覆盖它们。

答案 2 :(得分:0)

除了paxdiablo和wimvds提到的可能的权限问题之外,还要检查文件名和文件的大小写。路径。与windows不同,unix文件系统区分大小写。