0

ドキュメントをメインのテストディレクトリにアップロードできます。しかし、staffNoである変数を呼び出して、特定のstaffNoディレクトリに配置したいと思います。しかし、入力に適切な名前を宣言したにもかかわらず、変数を解析できません。

例えば:

スタッフページ

$staffNo = 1;
<form id="Staff" name="Staff" method="post" action="upload.php" enctype="multipart/form-data">

//My staffno variable
<input type="hidden" id="staffNo" name="staffNo" value="<?php echo $staffNo ?>"/>

//Upload document
<input name="upload" id="upload" type="file"/>
<input type="hidden" name="upload" value="upload"/>

//Submit button
<input type="submit" name="submit" value="Submit">
</form>

upload.php

switch($_POST['submit']) 
{
case 'Submit':
    if ($_FILES["upload"]["error"] > 0)
    {
    echo "Error: " . $_FILES["upload"]["error"] . "<br />";
    }
    else
    {
    echo "Upload: " . $_FILES["upload"]["name"] . "<br />";
    echo "Type: " . $_FILES["upload"]["type"] . "<br />";
    echo "Stored in: " . $_FILES["upload"]["tmp_name"];

    move_uploaded_file($_FILES["upload"]["tmp_name"],
  "documents/"."staffNo"."/".$_FILES["upload"]["name"]);

            echo "Stored in: " ."./documents/"."staffNo"."/".  $_FILES["upload"]["name"];
}

break;

case 'others':
break;

default;

マイstaffNo変数は、それがすでにフォームの下にあるにもかかわらず、呼び出すことができませんでした。私は間違ってどこかをしたしましたか?そして私はまた、内部見つかっていない場合staffNoのための新しいフォルダを作成したいです。しかし、今の基本的なstaffNoの変数はコールアウトすることができませんでした。親切なアドバイス。

4

1 に答える 1

2

私はあなたが提出したupload.phpにいくつかのエラーを修正しました。あなたは変数に隠されたフィールドの割り当て値に必要があります。 $staffNo = $_POST['staffNo'];

upload.php

switch($_POST['submit']) 
{
    case 'Submit':
        if ($_FILES["upload"]["error"] > 0)
        {
            echo "Error: " . $_FILES["upload"]["error"] . "<br />";
        }
        else
        {
            $staffNo = $_POST['staffNo']; // preform validation here
            echo "Upload: " . $_FILES["upload"]["name"] . "<br />";
            echo "Type: " . $_FILES["upload"]["type"] . "<br />";
            echo "Stored in: " . $_FILES["upload"]["tmp_name"];
            // check if directory exists
            if(!is_dir("documents/".$staffNo)){
                // if it doesn't - create it
                mkdir("documents/".$staffNo);
            }
            move_uploaded_file($_FILES["upload"]["tmp_name"],
            "documents/".$staffNo."/".$_FILES["upload"]["name"]);
            echo "Stored in: " ."./documents/".$staffNo."/".  $_FILES["upload"]["name"];
        }

    break;

    case 'others':
    break;

    default;
}

staffNoたとえば、firebugによって値が変更されたり、アップロードパスが混乱したりしないように検証する必要があります。

于 2012-07-07T10:31:30.203 に答える