我在Windows上运行Apache 2.4,并在不使用IIS的情况下在同一服务器“Windows Server 2008 R2”上运行PHP。
我有一个PHP脚本,应该将文件上传到服务器。
这是我的PHP代码
if (!empty($_FILES) && $actualToken == $verifyToken) {
$tempFile = $_FILES['Filedata']['tmp_name'];
$targetPath = ROOT_FIXED . UPLOAD_DIR . $targetFolder; //$_SERVER['DOCUMENT_ROOT']
$targetPath = str_replace( "//", "/", $targetPath);
$new_filename = USER_ID . '_' . time() . '_' . str_replace(" ", "_", $_FILES['Filedata']['name']);
$targetFile = $targetPath . $new_filename;
$fileParts = pathinfo($new_filename);
if (in_array(strtolower($fileParts['extension']),$fileTypes)) {
move_uploaded_file($tempFile,$targetFile);
$msg_res = trim($new_filename);
} else {
$msg_res = 'INVALID';
}
}
当我上传文件时,我会看到在指定的临时文件夹位置创建的.tmp文件。但是在上传文件后,它将从临时文件夹中删除,但由于某种原因它不会被移动到永久位置。
我不确定是否是权限问题,但我附上了文件夹权限的屏幕截图。
我还修改了php.ini文件并添加了
upload_tmp_dir = 'C:\php\temp_files'
所以临时文件应该进入上面的位置“而且它们是。”
此屏幕截图显示Apache正在登录为“本地系统帐户”
此屏幕截图显示了应永久移动文件的文件夹的安全设置