Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/451.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 引导文件输入-删除附件和多个上载字段_Javascript_Php_Jquery_Twitter Bootstrap_Bootstrap File Upload - Fatal编程技术网

Javascript 引导文件输入-删除附件和多个上载字段

Javascript 引导文件输入-删除附件和多个上载字段,javascript,php,jquery,twitter-bootstrap,bootstrap-file-upload,Javascript,Php,Jquery,Twitter Bootstrap,Bootstrap File Upload,我对插件有两个问题: 我正在上传到一个“temp”文件夹以存放文件,直到提交表单,并获得一个唯一的密钥,我可以将附件和表单数据关联起来。现在的问题是,如果用户希望通过本机“垃圾桶”图标删除上传的文件,上传的文件将保留在“临时”文件夹中,因为没有定义删除功能。如何设置“删除附件”按钮并将其指向“临时”文件夹中的附件 我有一个网页,有两个选项卡,每个选项卡都有一个表单供用户填写。我需要每个表单来显示fileinput插件,但是在复制代码后(即使输入字段有不同的名称),只有第一个fileinput字段

我对插件有两个问题:

  • 我正在上传到一个“temp”文件夹以存放文件,直到提交表单,并获得一个唯一的密钥,我可以将附件和表单数据关联起来。现在的问题是,如果用户希望通过本机“垃圾桶”图标删除上传的文件,上传的文件将保留在“临时”文件夹中,因为没有定义删除功能。如何设置“删除附件”按钮并将其指向“临时”文件夹中的附件

  • 我有一个网页,有两个选项卡,每个选项卡都有一个表单供用户填写。我需要每个表单来显示fileinput插件,但是在复制代码后(即使输入字段有不同的名称),只有第一个fileinput字段工作正常,第二个字段根本不上传文件。如何在一个网页上运行多个插件实例

  • 输入字段+JS:

    <h4>Attachments</h4>
    <div class="col-md-12">
    
        <input tabindex="19" id="input" name="input[]" type="file" multiple class="file-loading">
        <p class="help-block">Max. filesize 5MB, images only (.jpg || .png || .bmp)</p>
        <script>
        var $input = $("#input");
        $input.fileinput({
            uploadUrl: "./attachments/upload.php", // server upload action
            uploadExtraData: {log:'auto',holidex:'<?php echo $_SESSION['Holidex']; ?>',user:'<?php echo $_SESSION['myusername']; ?>'},
            uploadAsync: false,
            showUpload: false, // hide upload button
            showRemove: false, // hide remove button
            maxFileCount: 10,
            'maxFileSize': 5120,
            allowedFileTypes: ["image", "video"]
        }).on("filebatchselected", function(event, files) {
            // trigger upload method immediately after files are selected
            $input.fileinput("upload");
        });
        </script>
    
    </div>
    
    附件
    

    最大文件大小为5MB,仅限图像(.jpg | |.png | |.bmp)

    变量$input=$(“#input”); $input.fileinput({ uploadUrl:“./attachments/upload.php”,//服务器上载操作 uploadExtraData:{log:'auto',holidex:'',用户:'}, uploadAsync:false, showUpload:false,//隐藏上载按钮 showRemove:false,//隐藏删除按钮 maxFileCount:10, “maxFileSize”:5120, 允许的文件类型:[“图像”、“视频”] }).on(“filebatchselected”,函数(事件、文件){ //选择文件后立即触发上载方法 $input.fileinput(“上传”); });
    upload.php

    <?php
    session_start();
    
    if(isset($_FILES['input'])) {
    
        // define variables
        $holidex = $_POST['holidex'];
        $user = $_POST['user'];
        $output_dir = "./".$holidex."/temp/".$user."/";
    
        // check whether temporary folder exists, otherwise create
        if (!file_exists($output_dir)) {
            mkdir($output_dir, 0755, true);
        }
    
        $ret = array();
    
    //  This is for custom errors;  
    /*  $custom_error= array();
        $custom_error['jquery-upload-file-error']="File already exists";
        echo json_encode($custom_error);
        die();
    */
        $error = $_FILES["input"]["error"];
        //You need to handle  both cases
        //If Any browser does not support serializing of multiple files using FormData() 
        if(!is_array($_FILES["input"]["name"])) //single file
        {
            $fileName = $_FILES["input"]["name"];
            move_uploaded_file($_FILES["input"]["tmp_name"],$output_dir.$fileName);
            $ret[]= $fileName;
        }
        else  //Multiple files, file[]
        {
          $fileCount = count($_FILES["input"]["name"]);
          for($i=0; $i < $fileCount; $i++)
          {
            $fileName = $_FILES["input"]["name"][$i];
            move_uploaded_file($_FILES["input"]["tmp_name"][$i],$output_dir.$fileName);
            $ret[]= $fileName;
          }
    
        }
        echo json_encode($ret);
    
    } else { echo "No data received."; }
     ?>