思路:在jsp中创建一个表单,用于提交数据,创建一个servlet获取数据并用IO流进行读写到相应的路径。
实现步骤及代码:
1.在jsp中
enctype表示表单中的数据项的编码方式
application/x-www-form-urlencoded:以"aaa=bbb&&ccc=ddd"的格式编码
multipart/form-data + post请求的数据,servlet获取数据应通过流获取数据(request.getInputStream())
<form action="upload.do" method="post" enctype="multipart/form-data"> 用户名:<input type="text" name="username" /><br> 上转文件:<input type="file" name="myfile" /><br> <button>提交</button> </form>
2.在servlet中
注意:
在类前必须有:@MultipartConfig ,否则无法运行
//web3.0之后,servlet提供了一套方便解析multipart的数据的解决方案//获取请求参数名并输出 System.out.println(request.getParameter("username"));//获取图片数据,并将其写入相应路径中 Part part2 = request.getPart("myfile"); System.out.println(part2.getName()); System.out.println(part2.getSize()); InputStream in = part2.getInputStream(); FileOutputStream out = new FileOutputStream("d:/321.jpg"); int len = 0; byte flush[] = new byte[1024*10]; while ((len = in.read(flush)) != -1) { out.write(flush, 0, len); }