问题是:是否有任何方法可以使它与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)
}
}
答案 0 :(得分:1)
该文件将从临时目录中删除 请求是否尚未移走或重命名。
对于在AJAX脚本末尾添加的每个新文件,您必须move_uploaded_file()
。如果您不希望孤立的文件存在,可以在提交表单之前将它们移动到临时目录中,并定期清理目录。
答案 1 :(得分:0)
您必须使用move_uploaded file
检查$_SESSION["test"]
是否存在。如果没有,请创建它,$_SESSION["test"] = array();
$_SESSION["test"][] = "images/" . $rename;
您可以使用$_SESSION["test"][count($_SESSION["test"] - 1]
访问上次上传的文件。如果您上传了单个文件,则使用$_SESSION["test"][1]
引用该文件不正确。