2017-02-04 4 views
2

Я действительно проверил все и просмотрел все примеры, но не нашел решения. В основном, я пытаюсь просто загрузить файл XML и сохранить его в конкретной папке. Папка создана, и я использую XAMPP localhost.

Мой код выглядит следующим образом:

HTML

<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="POST" enctype="multipart/form-data"> 
    <div class="row"> 
     <div class="form-group col-lg-4 col-md-4 col-xs-4 col-sm-4"> 
      <input type="file" name="fileToUpload" id="fileToUpload" accept="text/xml"> 
     </div> 
    </div> 
    <div class="row"> 
     <div class="col-lg-4 col-md-4 col-xs-4 col-sm-4"> 
      <button type="submit" class="btn btn-default" id="uploadFile" name="uploadFile" style="width: 100%">Upload</button> 
     </div> 
    </div> 
</form> 

PHP

<?php 
if (isset($_POST['uploadFile'])) { 
    $name = $_FILES["fileToUpload"]["name"]; 
    $tmp_name = $_FILES['fileToUpload']['tmp_name']; 
    $location = 'uploads/'; 
    move_uploaded_file($tmp_name, $location.$name); 
//also tried this -> copy($tmp_name, $location.$name); 
} 
?> 

Спасибо заранее,

B.

+0
+0

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

+0

@ Xorifelse Я использовал этот htmlspecialchars в каком-то предыдущем проекте, поэтому я просто скопировал его. Но в этом случае он не меняет выходную строку, так что это не проблема (я тестировал Это). Я проверил, является ли моя папка доступной для записи, и она вернулась, так что все в порядке. Дело в том, что условие IF из примера никогда не встречается (условие никогда не ИСТИНА) ... Я добавил заголовок («Местоположение: http://www.google.com/»); точно так же, как тест внутри этого блока IF, и он никогда не возникает. B. Desai Я пробовал это до и теперь снова, ничего не меняет. – bkfloyd94

ответ

0

Если вы пытаетесь проверить fo r загруженный файл, это не путь. Используйте что-то вроде is_uploaded_file:

if(is_uploaded_file($_FILES['fileToUpload']['tmp_name'])) { # note the tmp_name, don't change this 
    # handling goes here 
} 

Ваш код не работает, потому что вы проверяете для параметра, который не имеет значения (так как вы никогда не указать атрибут value для вашей кнопки). Кроме того, не рекомендуется передавать значения кнопке; если вам нужен этот тип поведения (в этом случае вы этого не делаете), используйте <input type="hidden" name="your-name" value="your-value" />.

+0

Спасибо за ответ. К сожалению is_uploaded_file ($ _ FILES ['fileToUpload'] ['tmp_name']) генерирует исключение -> Undefined index ... – bkfloyd94

+0

Если это так, то вы либо не показываете весь код, либо ваше действие получает перепутали ... попробуйте поместить весь URL вместо '$ _SERVER ['PHP_SELF']', поэтому, например, 'http: // localhost/path/to/your/file.php' и посмотреть, работает ли он – jake2389

+0

Check мой ответ выше .. Ничто из этого не помогает. Это связано с XAMPP/сервером. – bkfloyd94

0

Итак, после 2-х дней агонии я до сих пор не нашел конкретного решения этой проблемы, но, по крайней мере, я понял, что в PHP/HTML-код ничего нет, но это что-то с сервером. Для подключения к локальному серверу я использую XAMPP.

Во-первых, я попытался переустановить его (на тот же путь - раздел диска D) - ничего не изменил.

Во-вторых, я попытался установить его на диске С - Еще ничего

В-третьих, я установил WAMP, а и она по-прежнему не работает. Я тестировал свой код на другом сервере, и он работал как шарм.

Заключение: сервер даже не распознает, что форма была отправлена ​​(это условие IF никогда не является истинным).

Если кто-то знает, какая часть XAMPP или любой другой AMP должна что-либо сделать с этим, сообщите мне. Я буду очень признателен.

Заранее спасибо

+0

http://stackoverflow.com/questions/1282909/php-post-array-empty-upon-form-submission? –

+0

Спасибо. Множество исправлений, но никто из них не работал для меня. Серьезно, я понятия не имею, почему. Все еще жду, пока мои друзья ответят, использовали ли они XAMPP или использовали какой-то удаленный сервер. – bkfloyd94

+0

Просто уволил мой XAMPP (в основном ваниль) - ну, я смог воспроизвести это. Насколько велик ваш файл? –

0

[FIXED] Итак, НАКОНЕЦ .. В конце концов, как он использует, чтобы быть .. Самое глупое вызвать самый большой беспорядок.

В любом случае, я использую PhpStorm в качестве моей IDE и имеет свой собственный встроенный сервер. Даже если бы я установил свои параметры (php-интерпретатор и запустить конфигурацию), бывает, что PhpStorm автоматически использует другой сервер, а не мой (я должен был обратить внимание на порт раньше, но вы ..). Почему это происходит в первую очередь потому, что корень документа directoy XAMPP не был один я хранить мой проект в

Вы можете сделать 2 вещи:.

  1. При использовании XAMPP, сохраните свой проект at htdocs или
  2. Остановите свой Apache и MySql, перейдите в конфигурацию Apache -> Apache (httpd.conff) -> найти DocumentRoot "C:/XAMPP/HTDOCS" & «Справочник "C:/XAMPP/HTDOCS"

и заменить "C:/XAMPP/HTDOCS" с вашим собственным пути, включая саму папку проекта и начать Apache и MySql снова ПРИМЕЧАНИЕ, что если вы не включают в основную папку проекта, но включить его родительскую папку, то ваш путь во время выполнения кода будет локальный:./порт projectMainFolder/другие

что касается меня, вы можете заблокировать эту тему, так как я нашел решение. Еще раз спасибо всем за то, что вы прыгали, чтобы помочь!

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