0
点赞
收藏
分享

微信扫一扫

如何使用 JSP/Servlet 将文件上传到服务器?

爱情锦囊 2022-02-20 阅读 71

注:本文转自《白煮蛋的博客》 

Tomcat 6 或 Tomcat 7 中没有组件或外部库

web.xml文件中启用上传:

手动安装 PHP、Tomcat 和 Httpd Lounge

<span style="background-color:var(--highlight-bg)"><span style="color:var(--highlight-color)"><code class="language-xml"><<span style="color:var(--highlight-namespace)">servlet</span>>
    <<span style="color:var(--highlight-namespace)">servlet-name</span>>jsp</<span style="color:var(--highlight-namespace)">servlet-name</span>>
    <<span style="color:var(--highlight-namespace)">servlet-class</span>>org.apache.jasper.servlet.JspServlet</<span style="color:var(--highlight-namespace)">servlet-class</span>>
    <<span style="color:var(--highlight-namespace)">multipart-config</span>>
      <<span style="color:var(--highlight-namespace)">max-file-size</span>>3145728</<span style="color:var(--highlight-namespace)">max-file-size</span>>
      <<span style="color:var(--highlight-namespace)">max-request-size</span>>5242880</<span style="color:var(--highlight-namespace)">max-request-size</span>>
    </<span style="color:var(--highlight-namespace)">multipart-config</span>>
    <<span style="color:var(--highlight-namespace)">init-param</span>>
        <<span style="color:var(--highlight-namespace)">param-name</span>>fork</<span style="color:var(--highlight-namespace)">param-name</span>>
        <<span style="color:var(--highlight-namespace)">param-value</span>>false</<span style="color:var(--highlight-namespace)">param-value</span>>
    </<span style="color:var(--highlight-namespace)">init-param</span>>
    <<span style="color:var(--highlight-namespace)">init-param</span>>
        <<span style="color:var(--highlight-namespace)">param-name</span>>xpoweredBy</<span style="color:var(--highlight-namespace)">param-name</span>>
        <<span style="color:var(--highlight-namespace)">param-value</span>>false</<span style="color:var(--highlight-namespace)">param-value</span>>
    </<span style="color:var(--highlight-namespace)">init-param</span>>
    <<span style="color:var(--highlight-namespace)">load-on-startup</span>>3</<span style="color:var(--highlight-namespace)">load-on-startup</span>>
</<span style="color:var(--highlight-namespace)">servlet</span>>
</code></span></span>

如您所见

<span style="background-color:var(--highlight-bg)"><span style="color:var(--highlight-color)"><code class="language-xml"><<span style="color:var(--highlight-namespace)">multipart-config</span>>
  <<span style="color:var(--highlight-namespace)">max-file-size</span>>3145728</<span style="color:var(--highlight-namespace)">max-file-size</span>>
  <<span style="color:var(--highlight-namespace)">max-request-size</span>>5242880</<span style="color:var(--highlight-namespace)">max-request-size</span>>
</<span style="color:var(--highlight-namespace)">multipart-config</span>>
</code></span></span>

使用 JSP 上传文件。文件:

在 HTML 文件中

<span style="background-color:var(--highlight-bg)"><span style="color:var(--highlight-color)"><code class="language-java"><form method=<span style="color:var(--highlight-variable)">"post"</span> enctype=<span style="color:var(--highlight-variable)">"multipart/form-data"</span> name=<span style="color:var(--highlight-variable)">"Form"</span> >

  <input type=<span style="color:var(--highlight-variable)">"file"</span> name=<span style="color:var(--highlight-variable)">"fFoto"</span> id=<span style="color:var(--highlight-variable)">"fFoto"</span> value=<span style="color:var(--highlight-variable)">""</span> /></td>
  <input type=<span style="color:var(--highlight-variable)">"file"</span> name=<span style="color:var(--highlight-variable)">"fResumen"</span> id=<span style="color:var(--highlight-variable)">"fResumen"</span> value=<span style="color:var(--highlight-variable)">""</span>/>
</code></span></span>

在 JSP 文件Servlet中

<span style="background-color:var(--highlight-bg)"><span style="color:var(--highlight-color)"><code class="language-java"><span style="color:var(--highlight-namespace)">InputStream</span> <span style="color:var(--highlight-variable)">isFoto</span> = request.getPart(<span style="color:var(--highlight-variable)">"fFoto"</span>).getInputStream();
<span style="color:var(--highlight-namespace)">InputStream</span> <span style="color:var(--highlight-variable)">isResu</span> = request.getPart(<span style="color:var(--highlight-variable)">"fResumen"</span>).getInputStream();
<span style="color:var(--highlight-namespace)">ByteArrayOutputStream</span> <span style="color:var(--highlight-variable)">baos</span> = <span style="color:var(--highlight-keyword)">new</span> <span style="color:var(--highlight-literal)">ByteArrayOutputStream</span>();
<span style="color:var(--highlight-namespace)">byte</span> buf[] = <span style="color:var(--highlight-keyword)">new</span> <span style="color:var(--highlight-literal)">byte</span>[<span style="color:var(--highlight-namespace)">8192</span>];
<span style="color:var(--highlight-namespace)">int</span> <span style="color:var(--highlight-variable)">qt</span> = <span style="color:var(--highlight-namespace)">0</span>;
<span style="color:var(--highlight-keyword)">while</span> ((qt = isResu.read(buf)) != -<span style="color:var(--highlight-namespace)">1</span>) {
  baos.write(buf, <span style="color:var(--highlight-namespace)">0</span>, qt);
}
<span style="color:var(--highlight-namespace)">String</span> <span style="color:var(--highlight-variable)">sResumen</span> = baos.toString();
</code></span></span>

编辑您的代码以满足 servlet 要求,例如max-file-sizemax-request-size和您可以设置的其他选项...

 

举报

相关推荐

0 条评论