ファイルのアップロードを利用するWebサイトを稼働させています。ユーザーの 1 人を除いて、すべて正常に動作しています。IE8 を使用して、SharePoint サーバーから Web サイトにファイルをアップロードしています。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";
}