【问题标题】:JSP Servlet Upload Image File [duplicate]JSP Servlet上传图像文件[重复]
【发布时间】:2014-03-21 08:13:13
【问题描述】:

如何仅使用 JSP 和 Servlet 上传图像。我使用如下代码在 JSP 页面中获取图像:

<p>File: <input type="file" name="file_to_upload"> </p>

现在我想知道如何获取这些文件以及如何将它们保存在特定目录中?我将该文件夹命名为“图像”,并且我想将我上传的所有文件放在该文件夹中。当我重新启动服务器或刷新我的页面时,图像实际上会被保存。

我怎样才能做到这一点?

【问题讨论】:

  • 您是否尝试过使用某些代码或在 Google 或 SO 中查找?我认为有许多有用的示例代码。或者发布您尝试过的代码。

标签: java jsp servlets file-upload


【解决方案1】:

要使用 JSP 上传文件,您必须处理 multipart/form-data 请求。

我所知道的最简单的方法是使用 apache commons fileupload,详细描述在这里 http://www.javacodegeeks.com/2013/08/file-upload-example-in-servlet-and-jsp.html

ps。教程有点错误:-)

index.jsp 必须包含类似这样的内容

<form action="upload" method="post" name="uploadForm" enctype="multipart/form-data">
<input name="uploadfile" type="file" size="50″>
<input name="submit" type="submit" value="Submit">
</form>

【讨论】:

  • 另外,也可以在 servlet 规范 3.0 中不附加依赖项。 balusc.blogspot.nl/2009/12/uploading-files-in-servlet-30.html
  • 花了很长时间,但最终他们已经添加到 servlet 规范中!感谢您的提示!
  • 我会改写您的评论:“他们应该在十年前添加它!”。然后我们都可以同意。
  • 你是个绅士。谢谢;-)
【解决方案2】:

我认为处理文件上传(和多部分/表单数据请求)的最佳方法是使用Apache common file upload

它提供了许多有用的类来帮助管理文件上传问题。

【讨论】:

    【解决方案3】:

    使用上传文件的表单必须有'enctype="multipart/form-data"'。

    <%@ page language="java"  pageEncoding="gb2312"%>
    
    <%@ page import="java.io.*,java.awt.Image,java.awt.image.*,com.sun.image.codec.jpeg.*,java.sql.*,com.jspsmart.upload.*,java.util.*"%>
    
    <%@ page import="mainClass.*" %>
    
    <html>
      <head>
       <title>My JSP 'uploadimage.jsp' starting page</title>
      </head>
      <body>
    
        <%
    
        SmartUpload sma=new SmartUpload();
        long file_max_size=4000000;
        String filename1="",ext="",testvar="";
        String url="uploadfiles/";
        sma.initialize(pageContext);
         try
    
        {
    
        sma.setAllowedFilesList("jpg,gif");
        sma.upload();
        }catch(Exception e){
    
        %>
    
        <script language="jscript">
    
        alert("only jpg,gif allowed to upload!")
    
        window.location.href="upfile.jsp"
    
        </script>
    
        <%
    
    
    
         }
    
            try{
    
            com.jspsmart.upload.File myf=sma.getFiles().getFile(0);
    
            }else{
            ext=myf.getFileExt();
    
            int file_size=myf.getSize();
            String saveurl="";
            if(file_size < file_max_size){
            Calendar cal=Calendar.getInstance();
            String filename=String.valueOf(cal.getTimeInMillis());
            saveurl=request.getRealPath("/")+url;
            saveurl+=filename+"."+ext;
            myf.saveAs(saveurl,sma.SAVE_PHYSICAL
    
    );
        myclass mc=new myclass(request.getRealPath("data/data.mdb"));
          mc.executeInsert("insert into [path] values('uploadfiles/"+filename+"."+ext+"')");    out.println("ok!");
        response.sendRedirect("showimg.jsp");
        }
        }
    
        }catch(Exception e){
    
        e.printStackTrace();
    
        }
        %>
      </body>
    </html>
    

    当你想显示你的文件时,你应该在你的项目中写下你的文件路径,所以不要将你的文件保存在其他地方,当你的服务器要找到它时会很麻烦。

    先回答问题,这样你就明白了……

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-18
      • 1970-01-01
      • 2013-12-09
      • 2013-01-11
      • 1970-01-01
      • 2012-07-30
      • 1970-01-01
      • 2022-01-03
      相关资源
      最近更新 更多