Hey guys.
I am currently working on a project in JSP/Java Servlets, hope this is the right section. So, my problem regards mainly the form through which I will let the user input a file using <input type="file">. I did some research on the internet, telling me that I have two options (on the Servlet side) in order to get the file and store it in a directory on the server, namely O'Reilly's COS MultipartReques t and some other package issued by Apache. Now my problem is that, together with an image upload, I want the user to input other details in the form. I am managing to get the file on the server, however I still cannot get the other details (from textboxes, textareas and drop-down selections) since the form MUST have the enctype="multip art/form-data" property in order for the file upload to work.
Any ideas regarding what I am doing wrong? Or maybe how should I code this task?
Here is the source code:
I am currently working on a project in JSP/Java Servlets, hope this is the right section. So, my problem regards mainly the form through which I will let the user input a file using <input type="file">. I did some research on the internet, telling me that I have two options (on the Servlet side) in order to get the file and store it in a directory on the server, namely O'Reilly's COS MultipartReques t and some other package issued by Apache. Now my problem is that, together with an image upload, I want the user to input other details in the form. I am managing to get the file on the server, however I still cannot get the other details (from textboxes, textareas and drop-down selections) since the form MUST have the enctype="multip art/form-data" property in order for the file upload to work.
Any ideas regarding what I am doing wrong? Or maybe how should I code this task?
Here is the source code:
Code:
<table align="center" cellspacing="1"><form action="AddTrip" enctype="multipart/form-data" method="POST"> <tbody> <tr> <td>Trip Name</td> <td><input type="text" name="Name" value="" /></td> </tr> <tr> <td>Description</td> <td><textarea name="Description" rows="3" cols="20" value=""></textarea></td> </tr> <tr> <td>Category</td> <td><select name="Category" size="4"> <option>Cruise</option> <option>Tour</option> <option>Park</option> <option>History</option> <option>Eco-Tourism</option> </select></td> </tr> <tr> <td>Price</td> <td><input type="text" name="Price" value="" /></td> </tr> <tr> <td>Start Date</td> <td><input name="StartDate" onfocus="showCalendarControl(this);" type="text"></td> </tr> <tr> <td>End Date</td> <td><input name="EndDate" onfocus="showCalendarControl(this);" type="text"></td> </tr> <tr> <td>Country</td> <td><select name="Country" size="4"> <option>Malta</option> <option>Gozo</option> <option>Comino</option> <option>Sicily</option> <option>Ibiza</option> <option>Greece</option> </select></td> </tr> <tr> <td>Places Available</td> <td><input name="Places" type="text" value=""/></td> </tr> <tr> <td>Upload Picture</td> <td><input type="file" name="uploaded" accept="image/gif, image/jpeg, image/png, image.jpg"/></td> </tr> <tr> <td colspan="2" align="center"><input type="submit" id="search-submit-long" name="save" value="Submit Trip"></td> </tr> </tbody> </form></table> [Servlet] String Name = request.getParameter("Name"); String Description = request.getParameter("Description"); String Category = request.getParameter("Category"); String Price = request.getParameter("Price"); String StartDate = request.getParameter("StartDate"); String EndDate = request.getParameter("EndDate"); String Country = request.getParameter("Country"); String Places = request.getParameter("Places"); MultipartRequest multipartRequest = new MultipartRequest(request, getServletContext().getRealPath("/images/"), /* 1MB */ 1024 * 1024, new DefaultFileRenamePolicy()); if (multipartRequest.getParameter("save") != null) { upload(request, response, multipartRequest); } else { throw new IOException("Display Upload Dialogue"); } } catch(Exception e) { response.sendRedirect("Error.jsp?error=Entry of new trip failed. Please try again! Error is " + e.toString()); out.close(); }
Comment