我希望每当点击添加按钮时,应将default.jpg(位于dekstop)上传到服务器上。
为此,我尝试了以下代码: -
jsp页面代码: -
<form method="post" enctype="multipart/form-data" action="AddProductServlet">
Id<input type="text" name="id"><br><br>
Name<input type="text" name="name"><br><br>
<input type="text" name="imagename" style="visibility: hidden;">
<input type="submit" value="Add"></form>
AddProductServlet代码: -
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
// TODO Auto-generated method stub
String value="";
String itemName = "";
boolean isMultipart = ServletFileUpload.isMultipartContent(request);
if (!isMultipart)
{ }
else
{
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
List items = null;
try
{
items = upload.parseRequest(request);
}
catch(FileUploadException e){}
Iterator itr = items.iterator();
while (itr.hasNext())
{
FileItem item = (FileItem) itr.next();
if (item.isFormField())
{
if(item.getFieldName().equals("imagename"))
{
try{
File savedFile =
new File(getServletContext().getRealPath("/")+"productimages\\default.jpg");
item.write(savedFile);}
catch(Exception e)
{
System.out.print("Image can't be added.Error occurred in uploading image to server."+e.getMessage());
}
}
else{
String name = item.getFieldName();
value = item.getString();
}
}
}}}
现在的问题是名为default.jpg的文件正在上传到服务器,但它没有任何内容。
任何人都可以解决我的问题吗?
答案 0 :(得分:0)
您必须使用<input type="file">
。如果您不希望用户选择图片,则应隐藏该元素并将其值分配给您。
在这里查看关于这个主题的好教程:
http://www.tutorialspoint.com/servlets/servlets-file-uploading.htm