0

我的问题是,我想在不按提交按钮的情况下上传一个 csv 文件,我在这种情况下使用了 ajax。但是现在,他们出现了一些错误,并且错误说 fopen() 文件名不能为空。但是我已经得到了我想要的文件值,但是 $_FILES[$fie]['tmp_name'] 无法读取这个值。但是,如果我在 alert() 中附加变量,它们会显示确切的文件名。这是我的示例代码。

这是html:

<form id="Form2">
 <input type="file" id="fie" />
</form>

这是javascript:

<script style="text/javascript">
    $(function(){
        $('#Form2').change(function(e){
            e.preventDefault();

            var sub = document.getElementById("fie").files[0].name;

            if($('#cat1').hasClass('show')){
            $('#cat1').hide();

            $('#cat2').html("<img src='pb1.gif' />");

            $.ajax({

                url:'uploading.php',
                action:'get',
                data: 'fie='+sub,
                success: function(data){

                    $('#cat2').html(data);

                }
            });

            }
        });
    });
</script>

这是PHP:uploading.php

<?php

    include("conn.php"); //assuming that connected to a database.

    if (isset($_GET['fie'])) { 

     echo "<script>alert('".$_GET['fie']."')</script>";//IN ALERT THEY EXECUTE THE EXACT VALUE OF THE FILE I INPUT
     $fie = $_GET['fie'];
    $file = $_FILES[$fie]['tmp_name']; //PROBLEM IS THIS. THEY CAN'T READ THE VALUE AND TELL THEIR IS NO FILE.
    $handle = fopen($file,'r') or die ('Cannot open file'); 
     fgets($handle);
    do { 
        if (isset($data[0])) { 
            mysql_query("INSERT INTO tbl_numbers (numbers,cute) VALUES ('".addslashes($data[0])."','".addslashes($data[1])."')"); 
        } 
    }
    while ($data = fgetcsv($handle,1000,",","'")); 

    echo "Successful Upload~!";

}

?>

谢谢回复。

4

0 回答 0