2010-07-05 35 views
0

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

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

这里是服务器端的代码,我认为这是问题(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"; 
} 
+0

欢迎来到SO,请不要忘记访问http://stackoverflow.com/faq – Reigel 2010-07-05 05:51:19

回答

0

首先几项检查:

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

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

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

0

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

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

0

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