Php 像facebook上传一样使用ajax上传文件

Php 像facebook上传一样使用ajax上传文件,php,jquery,html,ajax,Php,Jquery,Html,Ajax,我的问题是,我想上传一个csv文件,而不需要按提交按钮,我使用了ajax。但是现在,出现了一些错误,错误是fopen()文件名不能为空。但是我已经得到了我想要的文件值,但是$\u FILES[$fie]['tmp\u name']无法读取这个值。但是如果我将变量附加到alert()中,它们将显示确切的文件名。这是我的示例代码 这是html: <form id="Form2"> <input type="file" id="fie" /> </form>

我的问题是,我想上传一个csv文件,而不需要按提交按钮,我使用了ajax。但是现在,出现了一些错误,错误是fopen()文件名不能为空。但是我已经得到了我想要的文件值,但是$\u FILES[$fie]['tmp\u 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>

$(函数(){
$('#Form2')。更改(函数(e){
e、 预防默认值();
var sub=document.getElementById(“fie”).files[0]。名称;
if($('#cat1').hasClass('show')){
$('#cat1').hide();
$('#cat2').html(“”);
$.ajax({
url:'uploading.php',
动作:'get',
数据:“外商投资企业=”+sub,
成功:功能(数据){
$('#cat2').html(数据);
}
});
}
});
});
这是Php: 上传.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~!";

}

?>

我看不到
移动上传的文件
任何地方,所以实际上没有上传任何东西。你为什么认为你甚至创建了
$文件
?您只向php脚本发送了一个文件名,没有发送任何文件内容。这个例子是你在网上找到的还是你自己创建的?为什么不使用jquery插件上传我自己创建的呢。只想知道上传文件的流程,而不需要点击提交按钮。@JuanCarlosAduan在这里,访问这个主题页面