如何在单击提交按钮时让Dropzone.js上传文件? [英] How to get Dropzone.js to upload files only when a submit button is clicked?

查看:115
本文介绍了如何在单击提交按钮时让Dropzone.js上传文件?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

过去几天我一直在尝试将Dropzone应用到我的表单中,但到目前为止,我没有运气,只有在单击提交按钮时才能确定如何上传和处理图像。
因此,我决定来这里请求你们帮忙。


我已经制作了一个示例代码结构,所以你只能看看它的必要性。现在,我认为当我将一些图片放入Dropzone并按下它从控制器触发collect_input函数的按钮时,它应该是正常的。但我不知道如何处理文件等。所以,我想我要求的是如何从表单处理文件的提示/解决方案,例如。将它们保存到文件夹并向数据库添加条目。


我要发布以下代码,如果您有任何提示或解决方案,请与我分享。我想提前感谢大家阅读本文和回复。顺便说一下,我在CodeIgniter工作。


[下载整个项目(css,js& php) http://puu.sh/ 5eqLc.zip




htdocs / application / controllers / test.php

for the past few days I've been trying to implement Dropzone into my form, but so far I had no luck figuring out how to make it upload and process the images only when the submit button gets clicked. Therefore, I decided to come here and ask you guys for help.
I've made a example code structure so you can only take a look at what its necessary. Right now, I think its should work the way when I put some pictures into the Dropzone and click the button it triggers the collect_input function from the controller. But I have no clue how to process the files,etc. So, I guess what I'm asking for is a tip/solution on how to process the files from the form e.g.. Saving them to a folder and adding an entry to a database.
I'm gonna post the code below and if any of you have any tips or solutions please share them with me. I'd like to thank you all in advance for even reading this and for your replies. Btw I'm working in CodeIgniter.
[Download the whole project (css,js & php] http://puu.sh/5eqLc.zip

htdocs/application/controllers/test.php

<?php
class Test extends CI_Controller {

    public function __construct() {

        parent::__construct();


    }

    public function index() {

        $this->load->view('test_view');

    }

    public function collect_input() {
    }
}

htdocs / application / controllers / test_view.php

<!DOCTYPE html>
<html>
    <head>
        <title>Test</title>
        <meta charset="utf=8">
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js" type="text/javascript"></script>                      

            <!--    Load DropZone        -->
            <link href="<?php echo base_url(); ?>/css/basic.css" type="text/css" rel="stylesheet" />
            <link href="<?php echo base_url(); ?>/css/dropzone.css" type="text/css" rel="stylesheet" />
            <script src="<?php echo base_url(); ?>js/dropzone.min.js"></script>
            <script type="text/javascript">
                jQuery(document).ready(function() 
                {
                    var myDropzone = new Dropzone("div#myId", { url: "file-upload"});
                });
            </script>
            <script type="text/javascript">
            Dropzone.options.myId = {

              // Prevents Dropzone from uploading dropped files immediately
              autoProcessQueue: false,

              init: function() {
                var submitButton = document.querySelector("#add")
                    myDropzone = this; // closure

                submitButton.addEventListener("click", function() {
                  myDropzone.processQueue(); // Tell Dropzone to process all queued files.
                });

                // You might want to show the submit button only when 
                // files are dropped here:
                this.on("addedfile", function() {
                  // Show submit button here and/or inform user to click it.
                });         
              }
            };
            </script>
        </head>
        <body>

            <?php echo form_open('test/collect_input'); ?>

                <!-- One of the many inputs of my form -->
                <select id="list_type">
                   <option value="-1">Chooose a type</option>

                   <option value="1">&gt;&gt;Type A</option>
                   <option value="2">&gt;&gt;Type B</option>
                </select>

                <!--        Dropzone         -->
                <div id="myId" class="dropzone"></div>  

                <!-- Submit button-->
                <input type="submit" id="add" name="add" value="Add!!">
        </form>
    </body>
</html>


推荐答案

您可以提供自己的网址来上传文件。目前我只是将其设置为'someurl'

You can supply your own url to upload the file. Currently I am just setting it as 'someurl'

Dropzone.autoDiscover = false;
jQuery(document).ready(function() {
  var myDropzone = new Dropzone("#myId", { 
    url: 'someurl',
    autoProcessQueue:false
  });

  $('#add').on('click',function(e){
    e.preventDefault();
    myDropzone.processQueue();  
  });   
});

这篇关于如何在单击提交按钮时让Dropzone.js上传文件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆