在服务器上上传图像

时间:2014-04-16 18:20:58

标签: jsp servlets

我希望每当点击添加按钮时,应将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的文件正在上传到服务器,但它没有任何内容。

任何人都可以解决我的问题吗?

1 个答案:

答案 0 :(得分:0)

您必须使用<input type="file">。如果您不希望用户选择图片,则应隐藏该元素并将其值分配给您。

在这里查看关于这个主题的好教程:

http://www.tutorialspoint.com/servlets/servlets-file-uploading.htm