servlet实现文件上传

1 jsp页面

<form action="upload.do" method="post" enctype="multipart/form-data">
上传文件: <input type="file" name="photo" /> <input type="submit"
value="上传" />
</form>

2 web.xml在控制页面的servlet配置里配置

 <!-- 配置Spring MVC DispatcherServlet -->  
    <servlet>  
        <servlet-name>MVC</servlet-name>  
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
        <!-- 初始化参数 -->  
        <init-param>  
            <!-- 加载SpringMVC的xml到 spring的上下文容器中 -->  
            <param-name>contextConfigLocation</param-name>  
            <param-value>  
                /WEB-INF/classes/mvc.xml  
            </param-value>  
        </init-param>  
        <load-on-startup>1</load-on-startup>  
        <multipart-config>
<max-file-size>52428800</max-file-size>
<max-request-size>52428800</max-request-size>
<file-size-threshold>0</file-size-threshold>
</multipart-config>
    </servlet> 


3 java代码

1)获取header:String header = part.getHeader("Content-Disposition");

2)获取拓展名限制文件格式:String fileExt = header.substring(header.lastIndexOf("."),header.lastIndexOf("""));

3)获取文件名:String fileName = header.substring(header.indexOf("filename="") + 10,header.lastIndexOf("""));

4)获取文件流,保存文件:

InputStream in = part.getInputStream();

OutputStream out = new FileOutputStream("E:/upload-files/pictures/"
+ fileName);
byte[] buffer = new byte[1024];
while ((in.read(buffer)) != -1) {
out.write(buffer);
}
in.close();
out.close();


只有把命运掌握在自己手中,从今天起开始努力,即使暂时看不到希望,也要相信自己。因为比你牛几倍的人,依然在努力。
原文地址:https://www.cnblogs.com/freesky168/p/14358289.html