0
 $tmpName = basename($_FILES['uploadfile']['tmp_name']);
 $rightname = basename($_FILES['uploadfile']['name']);
 move_uploaded_file($_FILES['uploadfile']['tmp_name'], $workDir."/".$tmpName) or  die("Cannot move uploaded file to working directory");
 if(!is_writable($_POST['filetype']))
    die('You cannot upload to the specified directory, please CHMOD it to 777.');
 move_uploaded_file($_FILES['uploadfile']['tmp_name'], $_POST['filetype'].'/'.$rightname)    or die("Cannot move uploaded file to destination directory");

ファイルをアップロードし、上記のコードを含む php スクリプトにデータを投稿するフォームがあります。上記のコードは、最初の「move_uploaded_file」が機能し、アップロードされたファイルが var/tmp フォルダーから $workDir フォルダーに移動されるように、部分的に機能します。ファイルは、アップロードされたファイルを一時的な名前で tmp フォルダーに配置してから宛先ディレクトリに移動するときに、サーバーによって指定された名前と同じ名前になります。フォームを送信した後、ファイルを tmp フォルダーに配置するときに、サーバーによってファイルに付けられた一時的な名前の名前を変更していないため、これはうまくいくと思います。2 番目の 'move_uploaded_file()' が指定されたエラーで終了するためです。ディレクトリは書き込み可能です。'777' に chmod されます。問題ありません。ここで、ファイルの名前を必要な名前に変更しています。

4

1 に答える 1