一、 上传文件是Web开发中经常要用到的功能:例如在基于B/S的人事信息管理系统中上传照片,在新闻发布系统中上传图片等等。。。。。要实现文件上传功能,就需要综合利用java中的文件输入和输出相关的类。
二、 首先在新建的jsp页面上,创建一个for标签,注意提交的类型为post,不能使用get上传,
1.因为 (get方式提交有大小限制,post没有),
2.表单的enctype属性:必须设置为multipart/form-data.。
3.表单必须有文件上传项:file,且文件项需要给定name值
上传文件夹需要增加一个属性webkitdirectory,像这样:
二、提交的位置可以指定为一个Servlet页面(如果是jsp页面,写代码比较麻烦),提交的类型需要指定为二进制提交,这个编码方式专用于有效的文件传输,对于文件上传表单处理其中method必须为post,也要增加类型enctype=“multipart/form-data”。这样就可以把文件中的数据作为流式数据上传。当然无论是什么文件格式,均可以
<form action="message.jsp" method="post" enctype="multipart/form-data">
选择一个文件:
<input type="file" name="uploadFile"/>
<br/><br/>
<input
type="submit" value="上传"/>
</form>
三、 因为是post提交的,所以后面也通过post来接收
@Override
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
}
三、接收前判断一下传入的数据是否是多媒体上传(多媒体:多种媒体的综合一般包括文本,声音和图像等多种媒体形式)
// 检测是否为多媒体上传
System.out.println(!ServletFileUpload.isMultipartContent(request));
if (!ServletFileUpload.isMultipartContent(request)) {
// 如果不是则停止
PrintWriter writer =
response.getWriter();
writer.println(“Error: 表单必须包含
enctype=multipart/form-data”);
//刷新流
writer.flush();
return;
}