<i>
我想问一下从html表单上传后如何将CSV文件存储到数据库。
我曾尝试使用onclick将CSV文件存储到数据库并且工作正常。但同时我需要验证表单中的其他字段,但我不能使用onclick函数。在我的项目中,我将javascript与我的php代码集成,我知道这是无法完成的。任何人都可以帮我解决问题吗?我需要将csv文件存储到数据库中并验证其他字段。
`
<?php
require_once "lib/base.inc.php";
?>
<script>
function checkmail(){
var subject = document.getElementById('subject').value;
var message = document.getElementById('message').value;
var csv = document.getElementById('csv').value;
if(empty(subject)){
alert("Subject is required.");
}
else if(empty(message)){
alert("Message is required.");
}
else if(empty(csv)){
alert("CSV file is required.");
}
else{
<?php
$file = $_FILES[csv][tmp_name];
$handle = fopen($file,"r");
//loop through the csv file and insert into database
do {
if ($data[0]) {
$record['contact_first'] = $data[0];
$record['contact_last'] = $data[1];
$record['contact_email'] = $data[2];
$record['status'] = 0;
$oAdminEmail->insertQueEmail($record);
}
} while ($data = fgetcsv($handle,1000,",","'"));
?>;
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Import a CSV File with PHP & MySQL</title>
</head>
<body>
<form action="" method="post" enctype="multipart/form-data" name="form1" id="form1">
Subject : <br/>
<input type="text" name="subject" id="subject"/> <br/>
Choose your file: <br />
<input name="csv" type="file"id="csv"/> <br/>
Content : <br/>
<textarea name="message" cols="50" rows="10"></textarea><br/>
<input type="submit" name="submit" value="Submit" onclick="checkmail()"/>
</form>
</body>
</html>`
答案 0 :(得分:1)
试试这个
使用HTML5必需的归因来验证表单字段
<form action="javascript:checkmail();" method="post" enctype="multipart/form-data" name="form1" id="form1">
Subject : <br/>
<input type="text" name="subject" required id="subject"/> <br/>
Choose your file: <br />
<input name="csv" type="file" id="csv" accept=".csv" required/> <br/>
Content : <br/>
<textarea name="message" cols="50" required rows="10"></textarea><br/>
<input type="submit" name="submit" value="Submit" onclick=""/>
</form>
答案 1 :(得分:1)
您应该向accept=".csv"
添加input
属性。
<input type="csv" name="file" id="csv" accept=".csv">
我已经尝试过你的代码,我发现我可以上传任何类型的文件。由于您的代码无法使用JavaScript运行警报消息。因此,另一种方法是添加accept
来过滤只显示特定文件格式以避免不必要的错误。