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

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

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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值