За последние 24 часа нас посетили 22037 программистов и 1104 робота. Сейчас ищут 719 программистов ...

Загрузка файла сразу после выбора

Тема в разделе "PHP для новичков", создана пользователем andre2017, 19 авг 2017.

  1. andre2017

    andre2017 Новичок

    С нами с:
    3 авг 2017
    Сообщения:
    67
    Симпатии:
    2
    Здравствуйте, есть форма выбора файла. Как сделать, чтобы файл загружался (скрипт выполнялся) после клика по нему в окне выбора файла? Чтобы убрать с формы кнопку Загрузить.

    HTML:
    1. <form enctype="multipart/form-data" action="file_upload.php" method="POST">
    2.     <input name="userfile" type="file" />
    3.     <input type="submit" value="Загрузить" name="send_file">
    4. </form>
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
    andre2017 нравится это.
  3. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.555
    Симпатии:
    1.754
    самое простое - сабмитить форму через JS по событию change у инпута. Но страница будет перезагружаться. Ну или плагин, который @denis01 написал
     
    andre2017 нравится это.
  4. lastdays

    lastdays Активный пользователь

    С нами с:
    27 сен 2012
    Сообщения:
    410
    Симпатии:
    74
    Код (Text):
    1.  
    2. <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
    3. <script type="text/javascript" src="http://malsup.github.io/jquery.form.js"></script>
    4. <script type="text/javascript">
    5. $(document).ready(function()
    6. {
    7.  
    8. $('body').on('change','#photoimg', function()
    9. {
    10. var A=$("#imageloadstatus");
    11. var B=$("#imageloadbutton");
    12.  
    13. $("#imageform").ajaxForm({target: '#preview',
    14. beforeSubmit:function(){
    15. A.show();
    16. B.hide();
    17. },
    18. success:function(){
    19. A.hide();
    20. B.show();
    21. },
    22. error:function(){
    23. A.hide();
    24. B.show();
    25. } }).submit();
    26. });
    27.  
    28. });
    29. </script>
    30.  
    31.  
    32. <div id='preview'>
    33. </div>
    34. <form id="imageform" method="post" enctype="multipart/form-data" action='upload.php'>
    35. Upload image:
    36. <div id='imageloadstatus' style='display:none'><img src="loader.gif" alt="Uploading...."/></div>
    37. <div id='imageloadbutton'>
    38. <input type="file" name="photoimg" id="photoimg" />
    39. </div>
    40. </form>
     
    andre2017 нравится это.
  5. andre2017

    andre2017 Новичок

    С нами с:
    3 авг 2017
    Сообщения:
    67
    Симпатии:
    2
    Мне и нужно самое простое, без jquery! Можно пример?
     
  6. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.555
    Симпатии:
    1.754
    самому не догадаться?
    <input type='file' onchange="document.getElementById("form_id").submit()">
     
    andre2017 и denis01 нравится это.
  7. andre2017

    andre2017 Новичок

    С нами с:
    3 авг 2017
    Сообщения:
    67
    Симпатии:
    2
    Несколько часов промучался с Вашим примером, даже сделал по своему:
    HTML:
    1.  
    2. <form enctype="multipart/form-data" action="" method="POST">
    3.      <input type="file" name="userfile" onchange="javascript:this.form.submit();">
    4. </form>
    5.  
    Наконец заметил вложенные кавычки:
    HTML:
    1.  
    2. <form enctype="multipart/form-data" id=form_id action="" method="POST">
    3.     <input type='file' name="userfile" onchange='document.getElementById("form_id").submit()'>
    4. </form>
    5.  
     
  8. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.555
    Симпатии:
    1.754
    Ну на форуме опечатки случаются. В реале тоже, но у меня конечно не несколько часов бы ушло на поиск такой ошибки :) Панель разработчика браузера сразу бы показала, что что-то не так