0

質問は: SESSION 配列で動作させる方法はありますか?

$_FILES["file"] を SESSION 配列に割り当てたため、ファイルはアップロードされません。var_dump($_SESSION['test'][1]["tmp_name"]) と var_dump($_FILES["file"]["tmp_name"]) を使用すると、同じ値が表示されます。アイデアはありますか?

//THIS WONT WORK
    $_SESSION['file'][] = $_FILES["file"];
    $_SESSION['file'][] = $_FILES["file2"];
    foreach($_SESSION['file'] as $index => $name){
       move_uploaded_file($_SESSION['file'][$index]["tmp_name"], "images/" . $rename);
    }
//THIS WORKS OK
    move_uploaded_file($_FILES["file"]["tmp_name"],
    "images/" . $rename);

セッションを使用する必要がある理由をいくつか説明します... foreach ステートメントを使用してアップロードするファイルが複数あるため、セッションを使用する必要があります。

// print_r($_SESSION["file"]) は以下を出力します:

array(1) {
  [0]=>
  array(5) {
    ["name"]=>
    string(8) "face.jpg"
    ["type"]=>
    string(10) "image/jpeg"
    ["tmp_name"]=>
    string(31) "C:\EasyPHP-12.1\tmp\php882C.tmp"
    ["error"]=>
    int(0)
    ["size"]=>
    int(22398)
  }
}
4

2 に答える 2

0
  1. move_uploaded file を使用してファイルを保存する必要があります

  2. 存在するかどうかを確認$_SESSION["test"]します。そうでない場合は作成し、$_SESSION["test"] = array();

  3. $_SESSION["test"][] = "images/" . $rename;

  4. で最後にアップロードされたファイルに到達できます$_SESSION["test"][count($_SESSION["test"] - 1]。単一のファイルをアップロードした場合、それを で参照するのは正しくありません$_SESSION["test"][1]

于 2013-10-29T05:33:03.683 に答える