2013-07-10 3 views
2

Здравствуйте, У меня есть сценарий php, который используется для разрешения загрузки файлов. Сценарий имеет массив с допустимыми типами файлов.Как разрешить все типы файлов для загрузки в php?

 $fileTypes = array('jpg', 'jpeg', 'gif', 'png', 'zip', 'xlsx') 

Поскольку форма за бревном в области для моего клиента, он просит, чтобы все типы файлов, а не ограничиваться файлов в массиве. Хотя я уже объяснил клиенту, что было бы лучше ограничить файлы, он настаивает на том, чтобы он был открыт.

Есть ли способ разрешить любой тип файла в массиве?

Полный скрипт

 $uploadDir = '/uploads/'; 

     // Set the allowed file extensions 
     $fileTypes = array('jpg', 'jpeg', 'gif', 'png', 'zip', 'xlsx', 'cad', 'pdf', 'doc', 'docx', 'ppt', 'pptx', 'pps', 'ppsx', 'odt', 'xls', 'xlsx', '.mp3', 'm4a', 'ogg', 'wav', 'mp4', 'm4v', 'mov', 'wmv'); // Allowed file extensions 

    $verifyToken = md5('unique_salt' . $_POST['timestamp']); 

    if (!empty($_FILES) && $_POST['token'] == $verifyToken) { 
$tempFile = $_FILES['Filedata']['tmp_name']; 
$uploadDir = $_SERVER['DOCUMENT_ROOT'] . $uploadDir; 
$targetFile = $uploadDir . $_FILES['Filedata']['name']; 

// Validate the filetype 
$fileParts = pathinfo($_FILES['Filedata']['name']); 
if (in_array(strtolower($fileParts['extension']), $fileTypes)) { 

    // Save the file 
    move_uploaded_file($tempFile, $targetFile); 
    echo 1; 

    } else { 

    // The file type wasn't allowed 
    echo 'Invalid file type.'; 

    } 
    } 
+10

да - просто не делают фильтрацию. – Timothy

+0

вы можете показать нам полный скрипт? – zzlalani

+0

О, извините, хорошо, я обновил это с помощью скрипта – gcupat

ответ

4

Просто не делают фильтрацию.

<?php 
$uploadDir = '/uploads/'; 

$verifyToken = md5('unique_salt' . $_POST['timestamp']); 

if (!empty($_FILES) && $_POST['token'] == $verifyToken) { 
    $tempFile = $_FILES['Filedata']['tmp_name']; 
    $uploadDir = $_SERVER['DOCUMENT_ROOT'] . $uploadDir; 
    $targetFile = $uploadDir . $_FILES['Filedata']['name']; 

    // Save the file 
    move_uploaded_file($tempFile, $targetFile); 
    echo 1; 
} 
1

Просто удалите проверки типов файлов и загрузить все

//if (in_array(strtolower($fileParts['extension']), $fileTypes)) { 

    // Save the file 
    if(move_uploaded_file($tempFile, $targetFile)){ 
    echo 1; 
    else{ 
    echo 'An error occurred '; 
    } 

// } else { 

    // The file type wasn't allowed 
    // echo 'Invalid file type.'; 

    //} 
1

Используйте следующий код, а

<?php 
$uploadDir = '/uploads/'; 

$verifyToken = md5('unique_salt' . $_POST['timestamp']); 

if (!empty($_FILES) && $_POST['token'] == $verifyToken) { 
    $tempFile = $_FILES['Filedata']['tmp_name']; 
    $uploadDir = $_SERVER['DOCUMENT_ROOT'] . $uploadDir; 
    $targetFile = $uploadDir . $_FILES['Filedata']['name']; 

    // Save the file 
    move_uploaded_file($tempFile, $targetFile); 
    echo 1; 

} 

?> 
Смежные вопросы