Beste Tweakers,
Ik worstel al een tijdje met een code om csv files te uploaden en wil deze opslaan in mijn mysql database die op een apache server draait.Ik maak gebruik van JSP en wil doormiddel van een Stringtokenizer het bestand regel voor regel inlezen en dan deze gegevens in een array plaatsen om ze dan vervolgens 1 voor 1 weg te schrijven naar de juiste kolom in de database!Wat de code tot nu toe doet is het tonen van het volledige bestand in mijn scherm.Hiervoor gebruik ik een println.out om te testen of mijn bestand wel wordt geladen. Dit moet worden vervangen door een query die de arrays wegschrijft naar de database!
Alvast bedankt !
Ik worstel al een tijdje met een code om csv files te uploaden en wil deze opslaan in mijn mysql database die op een apache server draait.Ik maak gebruik van JSP en wil doormiddel van een Stringtokenizer het bestand regel voor regel inlezen en dan deze gegevens in een array plaatsen om ze dan vervolgens 1 voor 1 weg te schrijven naar de juiste kolom in de database!Wat de code tot nu toe doet is het tonen van het volledige bestand in mijn scherm.Hiervoor gebruik ik een println.out om te testen of mijn bestand wel wordt geladen. Dit moet worden vervangen door een query die de arrays wegschrijft naar de database!
Java Server Page:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
| <%@ page import="java.io.*,java.sql.*" %> <html> <% String contentType = request.getContentType(); if ((contentType != null) && (contentType.indexOf("multipart/form-data") >= 0)) { DataInputStream in = new DataInputStream(request.getInputStream()); int formDataLength = request.getContentLength(); byte dataBytes[] = new byte[formDataLength]; int byteRead = 0; int totalBytesRead = 0; while (totalBytesRead < formDataLength) { byteRead = in.read(dataBytes, totalBytesRead, formDataLength); totalBytesRead += byteRead; } String file = new String(dataBytes); String saveFile = file.substring(file.indexOf("filename=\"") + 10); System.out.println("saveFile=" + saveFile); saveFile = saveFile.substring(saveFile.lastIndexOf("\\")+ 1,saveFile.indexOf("\"")); System.out.println("saveFile" + saveFile); saveFile = file.substring(file.indexOf("filename=\"") + 10); saveFile = saveFile.substring(0, saveFile.indexOf("\n")); saveFile = saveFile.substring(saveFile.lastIndexOf("\\")+ 1,saveFile.indexOf("\"")); int lastIndex = contentType.lastIndexOf("="); String boundary = contentType.substring(lastIndex + 1,contentType.length()); int pos; pos = file.indexOf("filename=\""); pos = file.indexOf("\n", pos) + 1; pos = file.indexOf("\n", pos) + 1; pos = file.indexOf("\n", pos) + 1; int boundaryLocation = file.indexOf(boundary, pos) - 4; int startPos = ((file.substring(0, pos)).getBytes()).length; int endPos = ((file.substring(0, boundaryLocation)).getBytes()).length; FileOutputStream fileOut = new FileOutputStream(saveFile); fileOut.write(dataBytes, startPos, (endPos - startPos)); %> <b>File <% out.println(saveFile); %> has been uploaded and inserted into Database.</b> <%Connection con=null; String db = "jdbc:mysql://localhost:3306/jenw"; String usr = "root"; String pwd = "testing"; Statement st = null; Statement pst=null; String line = null; String value=null; try{ StringBuilder contents = new StringBuilder(); BufferedReader input = new BufferedReader(new FileReader(saveFile)); while (( line = input.readLine()) != null){ contents.append(line); } value = contents.toString(); System.out.println("Value:"+value); Class.forName("com.mysql.jdbc.Driver"); con=DriverManager.getConnection(db,usr,pwd); pst=con.createStatement(); out.println(value); int val = pst.executeUpdate("insert into klant(klant_postcode, klant_huisnummer) values('"+value+"')"); } catch(Exception e) { out.print(e.getMessage()); //out.println("+value+"); } } %> </html> |
Alvast bedankt !
[ Voor 0% gewijzigd door Creepy op 04-12-2008 12:52 ]