2016-02-29 4 views
1

Я пытаюсь иметь форму, в которой люди могут отправлять файлы, которые будут загружены и впоследствии связаны в базе данных mySQL.

В файле HTML/PHP:

<form enctype=”multipart/form-data” action="process_file.php" method="post" > 
       <!-- First/Last Name input boxes --> 
       <p> 
        <label for="fileUpload" id="fileUploadLabel">Proposal File (5MB Maximum):</label> 
        <input type="file" name="fileUpload[]" id="fileUpload" /> 
       </p> 
       <input type="submit" name="submit" id="submit" /> 
      </form> 

И файл process_file.php:

<?php 
    require("../../include/utility.php"); 
    if($_SERVER["REQUEST_METHOD"]=="POST") { 
     print_r($_FILES); 
       $dbconn = connectToDB(); 
       // Get and clean the data. 
       $fname = cleanInput($_POST["fname"]); 
       $lname = cleanInput($_POST["lname"]); 
       $new_filename = str_replace(' ','', basename($_FILES['fileupload']['name'])); 
       $imageFileType = pathinfo($_FILES['fileUpload']['name'],PATHINFO_EXTENSION); 

       printf("File name: $new_filename <br />\n"); 

       $target_dir = "../proposals/2016"; 
       $target_file = $target_dir . $lname . "_" . $fname . "_proposal" . $imageFileType; 
       printf("File Type is: $imageFileType <br />\n"); 
    } 
    /* [REDACTED] */ 
?> 

print_r ($ файлов) всегда дает мне "массив()". Я смотрел онлайн по выходным и совсем немного сегодня безрезультатно.

Я проверил enctype, я проверил правописание, капиляцию, добавив/удалив «[]» и все, что я мог придумать.

Я знаю, что это работает с настройками сервера, так как другие на одном и том же точном сервере смогли заставить это работать.

У кого-нибудь есть идея, почему это не работает? (Я могу предоставить больше из секции [УДАЛЕНО], но так как $ _FILES пустой код не работает в любом случае

+2

Что это за тезисы "" "" "" "" "" "" "" "" "" "" "" "" ""? –

+2

'' multipart/form-data "' не кодируются с помощью Word. –

+2

и 'fileUpload'! =' Fileupload' –

ответ

0

Переход через код:.

”multipart/form-data” - Эти фигурные кавычки удушья сценарий.

Те должны были регулярные " цитаты:

"multipart/form-data"

Тогда ваш входной файл имеет это имя атрибута name="fileUpload[]" еще, вы U петь $_FILES['fileupload'], где массив находится в полном нижнем регистре.

Массивы чувствительны к регистру и должны быть прочитаны как $_FILES['fileUpload'].

Я также заметил, что если 2016 папка, это $target_file = $target_dir . $lname будет перевести на 2016FILE.xxx вместо вероятная предназначен 2016/FILE.xxx.

Так что если это так, то вам нужно добавить к нему косые черты proposals/2016/.

  • Убедитесь, что все папки имеют соответствующие разрешения для записи.

Добавить error reporting в начало файла (ов), который поможет найти ошибки.

<?php 
error_reporting(E_ALL); 
ini_set('display_errors', 1); 

// Then the rest of your code 

Sidenote: Отображение ошибок не должно быть сделано только в постановке, и никогда производства.

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