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