5、WEB开发由浅入深系列BLOG-5(Servlet实现简单文件上传)

来源:互联网 发布:数据库第六版pdf网盘 编辑:程序博客网 时间:2024/06/01 09:15
Servlet实现文件的上传<!-- 上传文件不能够像提交文本信息一样,因为上传文件用到的是2进制的上传方式,所以要设置enctype="multipart/form-data"    而且在服务器端也要引入commons-fileupload.jar文件,-->客户端:<form action="/ServletTest/servlet/UploadFile.jsp" method="post" enctype="multipart/form-data">         <div align="center">    <fieldset style="width:80%;">    <legend>上传文件的案例</legend><br/>    <div>    <div align="left">上传文件</div>    <div align="right">    <input type="file" name="file1">    </div>    </div>    <div>    <input type="submit" name="sub" value="提 交">    </div>    </fieldset>    </div>    </form>服务器端://声明一个fileFile file = null;//声明解析request的对象,来源于commons-fileupload.jar包中DiskFileUpload diskFileUpload = new DiskFileUpload();try {//解析reqeust对象List<FileItem> list = diskFileUpload.parseRequest(request);//由于只是上传了一个文件,在此就不遍历了FileItem f = list.get(0);//,得到文件名String filename = new String(f.getName().getBytes(),"utf-8");//赋值文件,注意后面的123.jpg,在这里我是写死的。在实际情况中用filename即可file = new File(this.getServletContext().getRealPath("attachment"),"123.jpg");//创建文件夹file.getParentFile().mkdir(); //创建新文件file.createNewFile();//得到文件的输入流InputStream is = f.getInputStream();//得到文件输出流OutputStream os = new FileOutputStream(file);//字节缓存byte[] bys = new byte[1024]; //真正的文件长度int len = 0;//将文件流写入到指定的文件中while((len = is.read(bys)) > -1){os.write(bys, 0, len);}System.out.println("已经保存文件到:"+file.getAbsolutePath());

原创粉丝点击