We're a community of 1076K IT Pros here for help, advice, solutions, professional growth and fun. Join us!
1,075,894 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Start New Discussion Reply to this Discussion

Upload File in jsp

Hello, need help from experts in jsp/servlet..

i have a program in jsp that needs to upload a file and save this in desired folder and send the filename to database..
and its working properly..
my problem is.. i dont know how to save the additional input text in database.. when i run it..

heres my index.jsp

<FORM action="upload.jsp" method="post"  enctype="multipart/form-data">
Name: <input type="text" name="name">
Address: <input type="text" name="address">
Image: <input type="file" name="file">
<input type="submit" value="submit">
</form>

and heres my upload.jsp

<%@ page import="java.io.*,java.sql.*,java.util.zip.*, org.apche.*" %>
<%@ page import="java.util.List" %>
<%@ page import="java.util.Iterator" %>
<%@ page import="java.io.File" %>
<%@ page import="org.apache.commons.fileupload.servlet.ServletFileUpload"%>
<%@ page import="org.apache.commons.fileupload.disk.DiskFileItemFactory"%>
<%@ page import="org.apache.commons.fileupload.*"%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="java.sql.*" %>
<%


// String Name = request.getParameter("name");                i try to put this code to get the value of the input text
// String Address = request.getParameter("address");          but nothings happen, instead it appears null in my DB.



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("C:/Servers/Apache7/webapps/MyProject/uploadedpics/"+saveFile);
FileOutputStream fileOut = new FileOutputStream(ff);
fileOut.write(dataBytes, startPos, (endPos - startPos));
fileOut.flush();
fileOut.close();
%>

<%

Connection connection = null;
String connectionURL = "jdbc:mysql://localhost:3306/error_page";
PreparedStatement psmnt = null;
FileInputStream fis;
InputStream sImage;


// if (Name != null && Address != null ) {    here i also try to input this code                     


try{
Class.forName("com.mysql.jdbc.Driver").newInstance();
connection = DriverManager.getConnection(connectionURL, "root", "password");
File f = new File("C:/Servers/Apache7/webapps/MyProject/uploadedpics/"+saveFile);
psmnt = connection.prepareStatement("insert into error_page(ERROR_IMG) values(?)");


// psmnt.setString(1, Name);
// psmnt.setString(2, Address);



fis = new FileInputStream(f);
psmnt.setString(3, saveFile);
int s = psmnt.executeUpdate();
if(s>0){
System.out.println("Uploaded successfully !");
}
else{
System.out.println("Error!");
}
}
catch(Exception e){
    e.printStackTrace();
    out.println(e.getMessage());
}

}
%>

actually i'd try to get the parameter of the input text.. like this.. String Name = request.getParameter("name);
but when i run it, it doesn't sae to my DB.. can you edit my code..or give me some idea..

i'm just new in JSP so its hard for me to understand some code :(

2
Contributors
1
Reply
2 Days
Discussion Span
1 Year Ago
Last Updated
4
Views
rhyll07
Newbie Poster
3 posts since Feb 2011
Reputation Points: 10
Solved Threads: 0
Skill Endorsements: 0

did you try printing out

String Name = request.getParameter("name);

to make sure it contains the right info?

Philippe.Lahaie
Posting Whiz
360 posts since Oct 2007
Reputation Points: 103
Solved Threads: 54
Skill Endorsements: 4

This article has been dead for over three months: Start a new discussion instead

Post: Markdown Syntax: Formatting Help
 
You
 
© 2013 DaniWeb® LLC
Page rendered in 0.3184 seconds using 2.7MB