По какой-то причине при загрузке любого (одного, а не нескольких) файла PHP возвращает «Неверные параметры».Кто-нибудь знает почему?
<form action="" method="POST" enctype="multipart/form-data">
<label style="margin-bottom: 10px;display:inline-block;">Avatar Upload</label>
<input type="file" name="upfile" id="upfile" class="btn">
<input style="margin-top:10px;" type="submit" id="upload" name="upload" class="btn" value="Upload Avatar">
</form>
Выше HTML-форма, я думаю, она должна работать?
if( isset( $_POST['upload'] ) )
{
if( !isset($_FILES['upfile']['error']) || is_array($_FILES['upfile']['error']) )
{
egEcho("fail", "Invalid paramaters.");
}
elseif ( $_FILES['upfile']['size'] > 1000000 ) {
egEcho("fail", "File too big.");
}
else
{
$finfo = new finfo(FILEINFO_MIME_TYPE);
if (false === $ext = array_search(
$finfo->file($_FILES['upfile']['tmp_name']),
array(
'jpg' => 'image/jpeg',
'png' => 'image/png',
'gif' => 'image/gif',
),
true
)) {
egEcho('fail', 'Invalid file format.');
}
else
{
$fileName = $_FILES['upfile']['tmp_name'];
$backwardsFileName = strrev( $fileName );
$fileNameParts = explode( ".", $backwardsFileName );
$extensionNoDot = $fileNameParts[0];
$extension = '.' . $fileNameParts[0];
$userID = userGet( $username, "id" );
$newFileName = $userID . $extension;
$destination = '/avatars/' / $newFileName;
move_uploaded_file($_FILES['upfile']['tmp_name'], $destination);
mysqli_query( $connection, "UPDATE users SET avatarExtension = '$extensionNoDot' WHERE username = '$username'" );
egEcho("success", "Avatar successfully uploaded.");
}
}
}
Выше PHP, я в основном скопировал ее из PHP: Страница обработки загрузки файлов.
Чтобы добавить к этому, при выполнении:
if(isset( $_FILES['upfile'] ) ) {
}
Ничего не установлено.
При выполнении var_dump( $_FILES )
возвращаемое значение - пустой массив.