我有一个JSP,用户可以在其中使用来上传csv input type="file"
。我希望该csv中的内容进入数据库。我搜索了几个小时,只为此在php中找到了方法,但是我对php的经验为零,因此对java的任何帮助都表示赞赏。
我的JSP:
<span>Upload CSV : <input type="file"></span>
<table style="margin-left: 20px">
<tr>
<th class="table-custom">Employee Name</th>
<th class="table-custom">In Time</th>
<th class="table-custom">Out Time</th>
</tr>
</table>
试试这个代码
document.getElementById("upload").addEventListener("change", upload, false);
var out = "";
function upload(e) {
document.getElementById('csvForm').innerHTML = "";
var data = null;
var file = e.target.files[0];
var reader = new FileReader();
reader.readAsText(file);
reader.onload = function(event) {
var csvData = event.target.result;
var parsedCSV = d3.csv.parseRows(csvData);
parsedCSV.forEach(function(d, i) {
if (i == 0) return true; // skip the header
if (d.constructor === Array) {
createForm(d);
}
});
}
}
function createForm(csv) {
out += '<input value="' + csv[0] + '" name="date" type="hidden">';
out += '<input value="' + csv[1] + '" name="name" type="hidden">';
out += '<input value="' + csv[2] + '" name="in-time" type="hidden">';
out += '<input value="' + csv[3] + '" name="out-time" type="hidden">';
document.getElementById('csvForm').innerHTML = out;
document.getElementById('csvForm').setAttribute("formmethod", "post");
document.getElementById('csvForm').setAttribute("formaction", "testBrain.jsp");
out += '<br>';
}
<input id="upload" type="file">
<form id="csvForm"></form>
<input type="submit" value="submit" form="csvForm" formmethod="post" formaction="testBrain.jsp">
<script src="https://d3js.org/d3.v3.js"></script>
testBrain.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@page import="java.sql.*,java.util.*"%>
<html>
<head>
<meta http-equiv="Refresh" content="5;url=test.jsp">
</head>
</html>
<%
String[] date=request.getParameterValues("date");
String[] name=request.getParameterValues("name");
String[] inTime=request.getParameterValues("in-time");
String[] outTime=request.getParameterValues("out-time");
try
{
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/testDb", "root", "1234");
Statement st=conn.createStatement();
for(int x=0; x<name.length;x++) {
int i = st.executeUpdate("insert into csv(date,name,`in`,`out`)values('" + date[x] + "','" + name[x] + "','" + inTime[x] + "','" + outTime[x] + "')");
}
out.println("Data is successfully inserted! Redirecting.. Please wait");
// String redirectURL = "test.jsp";
// response.sendRedirect(redirectURL);
}
catch(Exception e)
{
System.out.print(e);
e.printStackTrace();
out.println("Error");
}
%>
我使用了这个问题,并对其进行了一些更改。您可以通过"type = hidden"
在createForm JS中删除来查看内容,然后再提交。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句