我有这个jquery代码:
$('input[type=file]').on('change', uploadFiles);
function uploadFiles(event) {
var data = new FormData();
var files = event.target.files;
for(var i = 0;i<files.length;i++){
data.append("file_"+i, files[i]);
}
data.append('dir_name',current_directory);
apicall('upload.php','POST',data,fileUploaded);
}
然后在php文件中:
<?php
$data = array();
$allFiles = scandir($_REQUEST['dir_name']);
if(isset($_FILES))
{
$error = false;
$uploaddir = $_REQUEST['dir_name'];
foreach($_FILES as $file)
{
echo $file['error'];
echo $file['tmp_name'];
$new_name = $file['name'];
move_uploaded_file($file['tmp_name'], $uploaddir .'/'.$file['name']);
}
}
else
{
//some code here
}
echo json_encode($error);
?>
现在这个工作和一切,我也可以一次上传任何文件和多个文件。但它导致Firefox使用的内存飙升,永远不会再次下降。它与我认为上传的文件成正比,但方式更大。我在手册中读到move_uploaded_file()
删除了临时文件,因此无法解决问题。唯一有用的是关闭Firefox并再次打开它。有人可以告诉我为什么会这样,以及如何让它停止?
如果重要,我正在使用XAMPP在localhost上测试所有这些。
在chrome中不会发生这种情况。