文本文件上传Ajax PHP
我想上传不同的文本文件,并根据文本文件来自的机器类型使用不同的php脚本进行处理文本文件上传Ajax PHP,php,jquery,ajax,Php,Jquery,Ajax,我想上传不同的文本文件,并根据文本文件来自的机器类型使用不同的php脚本进行处理 $(document).ready(function(e){ $('#txtUpload').on('submit',function(e){ var mType = $('#cmbmachine option:seleted').val(); var page; if(mType == 'machine1') { page = 'machine1.php'; } if(
$(document).ready(function(e){
$('#txtUpload').on('submit',function(e){
var mType = $('#cmbmachine option:seleted').val();
var page;
if(mType == 'machine1')
{
page = 'machine1.php';
}
if(mType == 'machine2')
{
alert('To be added');
}
e.preventDefault();
$.ajax({
url: page,
dataType: 'text',
type: 'post',
data: new FormData(this),
contentType: false,
cache: false,
processData: false,
success: function(data){
alert('ok');
}
});
});
});
这是我搜索的代码引用
任何形式的帮助都将受到感谢,并提前向您表示感谢
以下是html部分:
<fieldset>
<legend><strong>Select type of machine model</strong></legend>
<select id="cmbmachine" name="machine" class="field">
<option value="machine1">Machine 1</option>
<option value="machine2">Machine 2</option>
</select>
</fieldset>
<fieldset>
<legend><strong>Select a file to upload</strong></legend>
<form id="txtUpload" method="post" enctype="multipart/form-data">
<input type="file" name="files[]" size="40" multiple="multiple" />
<br />
<p></p>
<input type="submit" value="Upload File" onclick="myFunction()">
<br />
<br />
</form>
</fieldset>
<fieldset>
<legend><strong>Uploaded Files</strong></legend>
<div id="uploaded"></div>
</fieldset>
<script type="text/javascript">
document.getElementById("cmbmachine").value="<?php echo $_GET['machine'];?>";
</script>
选择机器型号的类型
机器1
机器2
选择要上载的文件
上传的文件
document.getElementById(“cmbmachine”).value=“”;
下面是php部分:
include 'functions.php';
set_time_limit(0);
if(isset($_FILES['files']))
{
foreach($_FILES['files']['tmp_name'] as$key => $tmp_name)
{
$file_name = $key.$_FILES['files']['name'][$key];
$file_size = $_FILES['files']['size'][$key];
$file_tmp = $_FILES['files']['tmp_name'][$key];
$file_type = $_FILES['files']['type'][$key];
if($file_size > 10000000) //10mb
{
echo "<script>alert('File exceeds file size')</script>";
}
if($file_type == "text/plain")
{
$i = 0;
$file = fopen($file_tmp,"r");
while(($data = fgetcsv($file, 1000, "\t"))!=FALSE)
{
if($i > 0)
{
$data[0] = "";
$data[1] = "";
$data[3] = "";
$data[4] = "";
$data[5] = "";
unset($data[0],$data[1],$data[3],$data[4],$data[5]);
$line[] = $data;
}
$i++;
}
fclose($file);
$j = 0;
foreach($line as $value)
{
$newline = explode(" ",$value[6]);
$date = trim($newline[0]);
$time = trim($newline[2]);
$newtime = date("H:i",strtotime($time));
try{
$query = $con->prepare("INSERT IGNORE INTO temp_logs(EmpID, ValidDate, ValidTime)VALUES(:id,:ddate,:time)");
$query->bindParam(':id',$value[2]);
$query->bindParam(':ddate',$date);
$query->bindParam(':time',$time);
$query->execute();
}
catch(PDOException $e){
echo $e->getMessage();
exit;
}
$j++;
echo $j . " row(s) processed.";
echo str_repeat(' ',1024 * 64);
flush();
sleep(0);
}
if($query)
{
echo "Process completed";
}
}
}
}
包括“functions.php”;
设置时间限制(0);
如果(isset($\u FILES['FILES']))
{
foreach($\u FILES['FILES']['tmp\u name']作为$key=>$tmp\u name)
{
$file\u name=$key.$\u FILES['FILES']['name'][$key];
$file\u size=$\u FILES['FILES']['size'][$key];
$file\u tmp=$\u FILES['FILES']['tmp\u name'][$key];
$file\u type=$\u FILES['FILES']['type'][$key];
如果($file_size>10000000)//10mb
{
回显“警报('文件超过文件大小')”;
}
如果($file_type==“text/plain”)
{
$i=0;
$file=fopen($file_tmp,“r”);
而($data=fgetcsv($file,1000,“\t”)!=FALSE)
{
如果($i>0)
{
$data[0]=“”;
$data[1]=“”;
$data[3]=“”;
$data[4]=“”;
$data[5]=“”;
未设置($data[0]、$data[1]、$data[3]、$data[4]、$data[5]);
$line[]=$data;
}
$i++;
}
fclose($文件);
$j=0;
foreach(行作为$value)
{
$newline=explode(“,$value[6]);
$date=trim($newline[0]);
$time=trim($newline[2]);
$newtime=日期(“H:i”,strottime($time));
试一试{
$query=$con->prepare(“将忽略插入临时日志(EmpID,ValidDate,ValidTime)值(:id,:ddate,:time)”);
$query->bindParam(':id',$value[2]);
$query->bindParam(':ddate',$date);
$query->bindParam(':time',$time);
$query->execute();
}
捕获(PDO$e){
echo$e->getMessage();
出口
}
$j++;
echo$j。“已处理行。”;
回波重复序列(“”,1024*64);
冲洗();
睡眠(0);
}
如果($query)
{
echo“流程已完成”;
}
}
}
}
如果您使用的是IE8,请知道上述方法使用html5的FileReader API,IE8不支持:
你能不能也发布.php文件的代码,考虑到上传的是该文件,问题可能出在该文件上。有人能帮我吗?我试图编辑代码并对其进行拉伸,但仍然不起作用……我从中尝试了此代码,但仍然不起作用。请帮助…我也尝试了这段代码,但它没有调用两个php脚本来处理…我已经在这里得到了答案。感谢所有帮助我的人。不,我正在使用chrome,因为IE不支持我的所有代码。我找到了一个解决方法,可以使用此代码检查此链接