在PHP(版本5.4.39-0 + deb7u2)中,我上传文件。 这种情况顺利进行了大约3年,直到今天。
经过数小时的测试后,我注意到 $ _ FILES ['Filedata'] ['name'] 数组在以下情况下无法读取:
在今天早上工作完美的代码之下。没有服务器更改。 Chrome和Safari都给出了相同的结果。 $ this-> file_name 变量存储在数据库中,以防止出现双打。
if (!empty($_FILES)) {
$tempFile = $_FILES['Filedata']['tmp_name'];
$ext = pathinfo($_FILES['Filedata']['name'], PATHINFO_EXTENSION);
$this->file_name = $_FILES['Filedata']['name'];
$fileTypes = array('jpg','JPG','jpeg'); // File extensions
$this->new_filename = $_POST['i']."_".date(YmdHis).$i."_".sha1($this->file)."_".rand(0, 1000)."_".rand(0, 1000).".JPG";
$this->new_file = $this->targetFile."/".$this->new_filename;
if (in_array($ext,$fileTypes)) {
move_uploaded_file($tempFile,$this->new_file);
} else {
$this->upload_error = 1;
}
}