我有一个网站正在运行,它使用文件上传。一切正常,除了其中一位用户。他们使用 IE8 将文件从他们的 SharePoint 服务器上传到网站。当我查看 PHP 中的 $_FILES 变量时,'name' 键看起来像这样:
somefilename[1]
代替
somefilename.pdf
然后阻止上传,因为不允许扩展。有没有人曾经处理过/见过这个?它看起来像一个临时名称或隐藏的文件扩展名。
编辑:
你们中的一些人请求了 $_FILES 变量:
[Filedata] => Array
(
[name] => Algemene%20Voorwaarden%20Corporate%20Services%202011[2]
[type] => application/octet-stream
[tmp_name] => /tmp/phps19zye
[error] => 0
[size] => 148021
)
这应该是一个 PDF 文件。我需要扩展,不仅出于安全原因,[type] 更适合于此,而且还用于演示和功能。我需要为文件类型显示正确的图标,并单独处理图像。
HTML 表单只是一个基本的测试表单:
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<form action="uploadtest3.php" method="post" enctype="multipart/form-data">
<input type="file" name="file_upload" id="file_upload" />
<br /><input type="submit" value="Uploaden" />
</form>
</body>
</html>
PHP文件如下:
$targetFolder = '/uploadtests/uploads3';
if (!empty($_FILES)) {
$tempFile = $_FILES['file_upload']['tmp_name'];
$targetPath = $_SERVER['DOCUMENT_ROOT'] . $targetFolder;
$targetFile = $targetPath . $_FILES['file_upload']['name'];
move_uploaded_file($tempFile,$targetFile);
echo "OK";
}