简体   繁体   English

Ajax 文件上传到 PHP 使用 javascript 弹出窗口

[英]Ajax file upload in PHP using javascript popup

I am having problem with uploading file with JavaScript Popup.我在使用 JavaScript 弹出窗口上传文件时遇到问题。 This is my first experience to upload file with such JavaScript popup.这是我第一次使用 JavaScript 弹出窗口上传文件。 I don't know how to pass the input[type:file] to the ajax function and then send to the php file for uploading.我不知道如何将 input[type:file] 传递给 ajax function 然后发送到 php 文件进行上传。

This is the button which calls the popup:这是调用弹出窗口的按钮:

<a class="btn btn-primary btn-sm" data-toggle="modal" data-target="#uploadDocument">Upload Document</a>
<div class="modal fade" id="uploadDocument" role="dialog">
    <div class="modal-dialog" style="top: 20%;">
        <div class="modal-content">
            <!-- Modal Header -->
            <div class="modal-header" style="background-color: #367FA9">
                <h4 class="modal-title" id="myModalLabel" style="color:white">Upload Document</h4>
            </div>
            <!-- Modal Body -->
            <div class="modal-body" style="padding-top: 20px; padding-right: 40px; padding-left: 40px;">
                <!-- <img src="police/images/new.jpg" width="120px" height="100px"> -->
                <p id="uploadMD"></p>
                <form role="form" id="uploadForm" >
                    <div class="form-group">
                      <input type="hidden" name="" id="rowid" value="<?php echo $id; ?>">
                    </div>
                    <div class="form-group">
                      <label>Document Name</label>
                      <input type="text" name="" id="documentName" class="form-control">
                    </div>
                    <div class="form-group">
                      <label>Document</label>
                      <input type="file" class="form-control" placeholder="Please Select File" id="documentFile">
                    </div>
                    <div class="form-group text-center">
                        <button type="button" class="btn btn-primary submitBtn block" style="background-color: #367FA9"  onclick="uploadDocument()" style="width: 100%;">Upload Document</button>
                    </div>  
                </form>
            </div>
            <!-- Modal Footer -->
            <div class="modal-footer">
                <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
            </div>
        </div>
    </div>
</div>

The javascript code is as follows: javascript代码如下:

<script>
function uploadDocument(){
    var rowid = $('#rowid').val();
    var documentName = $('#documentName').val();
    var documentFile = $('#documentFile').val();
    if(documentName.trim() == '' ){
        alert('Please write file name');
        $('#documentName').focus();
        return false;
    }else if(documentFile.trim() == '' ){
        alert('Please Select File');
        $('#documentFile').focus();
        return false;
    }else {
        $.ajax({
            method:'POST',
            url:'upload.php',
            enctype: 'multipart/form-data',
            data:'&rowid='+rowid+'&documentName='+documentName+'&documentFile='+documentFile,
              success: function(result){
                $('#uploadForm').trigger('reset');
                if(result == '1'){
                 $('#uploadMD').html('<span style="color:green;">Your File is uploaded. Thank you</span>');
                 setTimeout(function(){ window.location.reload() }, 5000);
               }
                else{
                    $('#uploadMD').html('<span style="color:red;">Uploading Problem</span>').fadeIn().delay(5000).fadeOut();
                }
              }
        });
    }
}
</script>

and the upload.php file is here:和 upload.php 文件在这里:

<?php
    $rowid   = $_POST['rowid'];
    $documentName   = $_POST['documentName'];
    $file_name = $_FILES['documentFile']['name'];
    $file_move = move_uploaded_file($file_tmp,"../uploads/ps/".$file_name);
    include "../include/configs.php";
      if ($file_move) {
        $q2 = "UPDATE requests SET support_doc='$file_name' WHERE slug='$id'";
          $query = mysqli_query($con, $q2);
        if ($query) {
           echo $success = 1; 
        }
      }
    ?>

Thanks in advance.提前致谢。

Try formdata to pass in php file ajax call尝试formdata传入php文件ajax调用

var formData = new FormData();
formData.append('section', 'general');
formData.append('action', 'previewImg');
// Attach file
formData.append('image', $('input[type=file]')[0].files[0]); 


$.ajax({
    url: 'Your url here',
    data: formData,
    type: 'POST',
    contentType: false, // NEEDED, DON'T OMIT THIS (requires jQuery 1.6+)
    processData: false, // NEEDED, DON'T OMIT THIS
    // ... Other options like success and etc
});

Thanks谢谢

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM