Php 像facebook上传一样使用ajax上传文件
我的问题是,我想上传一个csv文件,而不需要按提交按钮,我使用了ajax。但是现在,出现了一些错误,错误是fopen()文件名不能为空。但是我已经得到了我想要的文件值,但是$\u FILES[$fie]['tmp\u name']无法读取这个值。但是如果我将变量附加到alert()中,它们将显示确切的文件名。这是我的示例代码 这是html: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>
<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在这里,访问这个主题页面