文件上传到错误的目录

时间:2011-09-22 19:43:00

标签: php

我尝试在php中使用copy()函数同时在服务器中存储两个相同的文件,我已经为复制的文件指定了目录,但它没有进入我指定的目录,即“ edituploads“文件夹,而不是它转到上传php scrpit所在的当前目录。而且我已经使用了copy()函数三次,这是一个问题吗? 任何人都可以告诉我什么是错的,非常感谢。

这是我的PHP代码:

  if (!empty($_FILES))
  {
      $a = uniqid();
      $tempFile = $_FILES['Filedata']['tmp_name'];
      $targetpath4=$_SERVER['DOCUMENT_ROOT']."/example/upload/edituploads/";
      $targetFile =  str_replace('//','/',$targetPath) . $a.".jpg";
      $targetFile4 =  str_replace('//','/',$targetPath4) . $a.".jpg"; 
      move_uploaded_file($tempFile,$targetFile);
      copy($targetFile, $targetFile4);
   }

2 个答案:

答案 0 :(得分:2)

php的copy / move命令完全基于文件名工作。您不能将目录指定为源或目标,因为它们不在目录中运行。它不像你可以做的外壳

$ cp sourcefile /some/destination/directory/

并且系统将很乐意为您创建该目录中的“sourcefile”。您必须为目标指定文件名,例如:

$ cp sourcefile /some/destination/directory/sourcefile

除此之外,你的移动命令是usign $targetPath,你的代码片段没有定义,因此它只会在当前工作目录中创建一个$a.jpg文件名。

你的copy()命令正在使用$targetFile4,它基于targetPath3,也没有在任何地方定义。

答案 1 :(得分:0)

您需要先复制文件,然后将TMP移到另一个目录。

拷贝($ TEMPFILE, 'somePlace_1'); move_uploaded_file($ tempFile,'somePlace_2');