0

PHP スクリプトを実行して、HTML フォームからファイルをアップロードし、名前を変更してサーバーに配置しています。アップロードして名前を変更していますが、すべてのファイル名が「配列」という単語で始まる
ようArrayTest Document v1.0.pdf
$newfnなりました.

//This gets all the other information from the form
$name=$_POST['docname'];
$version=$_POST['docver'];
$date=$_POST['docdate'];
$type=$_POST['doctype'];
$author=$_POST['docauth'];
$file=$_FILES['uploaded']['name'];

//target directory is assigned
$target = $directory;
$target = $target . basename($file) ;

//grab file extension
$filetypes = array(
'image/png' => '.png',
'image/gif' => '.gif',
'image/jpeg' => '.jpg',
'image/bmp' => '.bmp',
'application/pdf' => '.pdf');
$ext = $filetypes[$_FILES['uploaded']['type']];

//generate new filename variable "name v??.xxx"
$newfn = $name . ' ' . 'v' . $version . $ext;

//Check to see if file exists
if (file_exists($directory . $file))
{
echo $_FILES["uploaded"]["name"] . " already exists. ";
}
else
{
//if its a new file, change name and upload
    if (move_uploaded_file($_FILES["uploaded"]["tmp_name"],
        $directory . $_FILES["uploaded"] . $newfn))
        {
        echo "The file ". basename($file). " has been uploaded";
        }
        else
        {
        echo "Sorry, there was a problem uploading your file.";
        }
}

コマンドの私の$FILES['uploaded']セクションに関連しているように感じmove_uploaded_fileます。グーグルを試してみましたが、「配列」に言及するとすぐに、グーグルの結果はまったく同じではありません。

わかりましたので、以下のおかげで解決しました。将来の誰かの$_FILESために、配列全体を削除したので、コードは次のようになります

//if its a new file, change name and upload
if (move_uploaded_file($_FILES["uploaded"]["tmp_name"],
    $directory . $newfn))

すべてが正しい名前構造でアップロードされるようになりました。ありがとう。

4

2 に答える 2