Reputation: 21
<%@page import="java.sql.*" %>
<html>
<form method="get" action="blobexcode.jsp" onsubmit="txtvalidate()">
<head>
<style type="text/css">
body{
background-color:#d0e4fe;
}
</style>
</head>
<body>
<table>
<tr>
<td>
Customer Name <input type="text" name="Customername" id="customername">
</td>
</tr>
<tr>
<td>
Customer Mob: <input type="text" onkeypress="return
isNumberKey(event)" name="Customerphone" id="customerphone" >
</td>
</tr>
<tr>
<td>
Upload File: <input type="file" id="f" name="f" >
</td>
</tr>
<tr>
<td>
<input type="submit" value="SUBMIT" id="submit">
</td>
</tr>
<script type="text/javascript">
function isNumberKey(evt)
{
var charCode = (evt.which) ? evt.which : event.keyCode
if (charCode > 31 && (charCode < 48 || charCode > 57))
return false;
else
return true;
}
</script>
<script type="text/javascript">
function txtvalidate()
{
if(document.getElementById("customername").value=="" ||
document.getElementById("customerphone").value=="")
{
alert("Fill all fields");
return false;
document.Customername.focus();
}
else
return true;
}
</script>
</table>
</body>
</form>
</html>
Upvotes: 1
Views: 14825
Reputation: 1
Working Example
String saveFile = "";
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);
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;
File ff = new File(saveFile);
FileOutputStream fileOut = new FileOutputStream(ff);
fileOut.write(dataBytes, startPos, (endPos - startPos));
fileOut.flush();
fileOut.close();
ResultSet rs = null;
PreparedStatement psmnt = null;
FileInputStream fis;
try {
Connection connection = DbConnection.getConnection();
File f = new File(saveFile);
String idd = request.getAttribute("userid").toString();
String insert = "UPDATE `employee` SET `Picture`=? WHERE `id`='"
+ idd + "'";
psmnt = connection.prepareStatement(insert);
fis = new FileInputStream(f);
psmnt.setBinaryStream(1, (InputStream) fis,
(int) (f.length()));
int s = psmnt.executeUpdate();
if (s > 0) {
System.out.println("Uploaded successfully !");
} else {
System.out.println("Error!");
}
} catch (Exception e) {
e.printStackTrace();
}
}
Upvotes: 0
Reputation: 5291
Read the following article for storing image in db. This example does not use JSP http://java-x.blogspot.com/2007/01/handling-oracle-large-objects-with-jdbc.html
Once you have understanding of the article stated above you can use commons-file upload to upload the file and retrieve the inputstream of uploaded file and insert it in db.
Refer to following articles for help on file upload
http://commons.apache.org/fileupload/using.html
http://www.theserverside.com/news/1365153/HttpClient-and-FileUpload
Upvotes: 1