2011-09-22 20 views
0

PHPでcopy()関数を使用して、一度に2つの同じファイルを保存しようとしましたが、コピーしたファイルのディレクトリを指定しましたが、私が指定したディレクトリは "edituploads"フォルダであり、代わりにアップロードphp scrpitが存在するカレントディレクトリに移動します。私はcopy()関数を3回使用していますが、それは問題ですか? 何が間違っているのか教えていただけます、ありがとうございます。ファイルが間違ったディレクトリにアップロードされる

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

PHPのコピー/移動コマンドは、ファイル名のもとに、純粋に仕事:

は、ここに私のPHPコードです。ディレクトリーをソースまたはターゲットとして指定することはできません。これは、ディレクトリー内で操作されないためです。あなたができるシェルのようなものではありません。

$ cp sourcefile /some/destination/directory/ 

このシステムでは、そのディレクトリに「sourcefile」というファイルが作成されます。あなたの移動コマンドがあなたのコードスニペットが定義されていません$targetPathを、usignされ、それを超えて

$ cp sourcefile /some/destination/directory/sourcefile 

、単に現在で$a.jpgのファイル名を作成するために起こっている:あなたは、例えば、対象のファイル名を指定する必要があります作業ディレクトリ。

copy()コマンドはtargetPath3を基にした$targetFile4を使用しています。これはどこにも定義されていません。

0

ファイルを最初にコピーしてから、TMPを別のディレクトリに移動する必要があります。

copy($ tempFile、 'somePlace_1'); move_uploaded_file($ tempFile、 'somePlace_2');

+0

OPのコードが正しく動作していれば、ファイルは '$ targetFile'に移動し、' $ targetFile'からコピーされます。 –

+0

私は彼がそれを移動した後、tmp_fileからファイルをコピーしようとしていると思っていました。しかし、私は再び彼のコードを見ました、それは彼がtmp_fileを移動したパスからコピーしてください。あなたが言ったように、彼らはパラメータがありません。 – Botonomous

関連する問題