簡體   English   中英

CSV文件未通過php和jquery(ajax)上傳

[英]CSV File not uploading through php and jquery(ajax)

我正在嘗試使用此代碼上傳一個csv文件,但文件目錄沒有上傳到該文件夾​​,並且我在代碼中看不到任何錯誤。 請幫助我。

HTML代碼:

<form method="POST" action="submit.php" enctype="multipart/form-data""> <input type="file" name="file" id="upload"><br> </form>

JQUERY AJAX代碼:

$(document).ready(function(){
    $('#upload').on('change', function(e) {
        e.preventDefault();
        var file=this.files[0];
        console.log(file);    
        var filename = file.name;
        var ext = filename.split('.')[1];
        if(ext == "csv"){
            FileUploadAjaxCall();
        }else{

            $("#fileMsg").html("Extension not valid:Try Again");
        }                     
    });
});

function FileUploadAjaxCall(){  
    $.ajax({
            url:'submit.php',
            type:'POST',
            data:new FormData($('#upload').get(0)),
            contentType:false,
            cache:false,
            processData:false,
            success:function(data){
                if(data == 1){
                    console.log("File Uploaded Successfully");
                }else{
                    console.log(data);
                    console.log("Error");
                }
            }
        });
}`

PHP代碼:

<?php    

        $file = $_FILES['file'];

        $filename = $_FILES['file']['name'];
        $filetmpname = $_FILES['file']['tmp_name'];
            $fileDes = 'uploads/'.$filename;
            $t = move_uploaded_file($filetmpname,$fileDes);
            if($t == true){
                echo 1;
            };

?>

我已將您的代碼重新編寫如下。 驗證在服務器后端上傳的文件總是很有益的,並且可以欺騙javascript驗證。

試試下面的代碼,讓我看看會發生什么

<html>
<head>

<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script type="text/javascript">
$(document).ready(function (e) {
    $("#uploadForm").on('submit',(function(e) {
        e.preventDefault();
        $.ajax({
            url: "upload_processor.php",
            type: "POST",
            data:  new FormData(this),
            contentType: false,
            cache: false,
            processData:false,
            success: function(data)
            {
            $("#targetLayer").html(data);
                        $("#errorLayer").html(data);
            },
            error: function() 
            {
            }           
       });
    }));
});
</script>
</head>
<body>
<div>
<form id="uploadForm" action="upload_processor.php" method="post">
<div id="targetLayer"></div>

<div id="errorLayer"></div>

<div id="uploadFormLayer">
<input name="file" type="file" class="inputFile" /><br/>
<input type="submit" value="Submit" class="btnSubmit" />
</form>
</div>
</div>
</body>
</html>




<?php
if(is_array($_FILES)) {
if(is_uploaded_file($_FILES['file']['tmp_name'])) {

$fileName   = $_FILES['file']['name'];

$sourcePath = $_FILES['file']['tmp_name'];
$targetPath = "uploads/".$_FILES['file']['name'];

if($fileName ==''){
echo "<div id='errorLayer'>Please select file</div>";
exit;
}

$fileType = pathinfo($fileName, PATHINFO_EXTENSION);
            $allowTypes = array('csv');
            if (!in_array($fileType, $allowTypes, true)) {
               echo "<div id='errorLayer'>File type is invalid. Only CSV is allowed</div>";
exit;
            }


if(move_uploaded_file($sourcePath,$targetPath)) {
echo "<div id='targetLayer'>File  uploaded successfully</div>";
?>

<?php
}
}
}
?>

//form.html

<form method="POST" action="submit.php" id="uploadForm">
    <input type="file" name="file" id="upload" accept=".csv"><br>
    <input type="submit">
</form>
<div id="fileMsg"></div>
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<script>
   $(document).ready(function(e){
   $('#uploadForm').on('submit', function(e) {
       e.preventDefault();
        $.ajax({
            url:'submit.php',
            type:'POST',
            data:new FormData(this),
            contentType:false,
            cache:false,
            processData:false,
            success:function(){
                    $("#fileMsg").html("File Uploaded Successfully");
                },
            error:function(){
                    //$("#fileMsg").html(data);
                    $("#fileMsg").html("Error");
                }

        });
     });
   });

 </script>

//submit.php

<?php

  //  $file = $_FILES['file'];

    $filename = $_FILES["file"]["name"];
    $filetmpname = $_FILES["file"]["tmp_name"];
        $fileDes = "uploads/".$filename;
        $t = move_uploaded_file($filetmpname,$fileDes);
        if($t == true){
            echo "1";
        };

  ?>

你可以這樣做

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM