2015-03-19 2 views
1

Я пытаюсь использовать dropzone.js, чтобы сделать область загрузки файлов с перетаскиванием и я действительно отчаянно буду здесь. У меня есть этот простейший скрипт:

<?php 
    print_r($_FILES); 
?> 

<!DOCTYPE html> 
<html lang="en"> 
    <head> 
     <meta http-equiv="content-type" content="text/html; charset=UTF-8"> 
     <meta charset="utf-8"> 
    </head> 
    <body> 
     <form action="/" method="POST" enctype="multipart/form-data" class="dropzone"> 
      <input name="file" type="file" /> 
      <input type="submit" name="submit" value="Submit" /> 
     </form> 
     <script type='text/javascript' src="dropzone.js"></script> 
    </body> 
</html> 

Когда я вручную выбрать файл с помощью кнопки ввода файла, я получаю этот результат:

Array ([file] => Array ([name] => test.txt [type] => text/plain [tmp_name] => C:\wamp\tmp\php4DFF.tmp [error] => 0 [size] => 247)) 

Однако, когда я использую Dropzone перетащить и падение, появляется файл, как загружен, но после отправки я получаю это:

Array ([file] => Array ([name] => [type] => [tmp_name] => [error] => 4 [size] => 0)) 

также известен как UPLOAD_ERR_NO_FILEЗначение: 4; Файл не загружен.

Я что-то упустил?

Я пытался играть с настройками как autoProcessQueue: ложные, AUTODISCOVER: ложному, автоматическое заполнение формы, различных сценариев, различных серверов (Apache/Nginx), но абсолютно ничего не похоже на работу для меня. Должна быть какая-то глупая вещь, которую я только сейчас наблюдаю.

Я использую dropzone.js v4.0.1, но я попробовал и более старые версии.

+0

Знаете ли вы о плагине загрузки файла javery для загрузки Ravishanker Kusuma (http://hayageek.com/docs/jquery-upload-file.php). Я бы не стал мутить воду, введя другой плагин, если бы не думал, что это надежное решение. Я все время использую это, думаю, это потрясающе. Кроме того, автор наблюдает за комментариями по своей теме Disqus и помогает ежедневно. * Поддерживает перетаскивание «из коробки». * На его сайте есть примеры, а также множество дополнительных примеров здесь на SO. – gibberish

ответ

2

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

Возможно, у вас, вероятно, есть и ваш php на отдельной странице, а не для отправки самому себе. Вы не сможете просмотреть это сообщение в браузере после его отправки, потому что это ajax и async, но вы можете использовать инструменты hrome для просмотра сообщения, по крайней мере.

+0

О, я этого не осознавал! Спасибо, сэр! – Jakkub00

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