java 上传下载文件,Java上传文件

  java 上传下载文件,Java上传文件

  写爬虫互联网协议(互联网协议)被封了怎么解决?立即使用

  准备工作

  (视频教程推荐:java课程)

  需要导入的冲突包

  运行截图

  文件上传截图

  文件下载截图

  上传文件代码小型应用程序

  @ web servlet(name= upload servlet ,value=/upload )

  @ multipart config(max filesize=1024 * 1024 * 5,maxRequestSize=1024 * 1024 * 20)//1添加多部分配置注解

  公共类UploadServlet扩展HttpServlet {

  受保护的void doPost(HttpServletRequest请求,HttpServletResponse响应)引发ServletException,IOException {

  //存放文件的目录

  字符串实路径=请求。getservletcontext().获取真实路径(/we b-INF/upload );

  文件目录=新文件(真实路径);

  如果(!目录存在()){

  导演。mkdirs();

  }

  ListString allow exts=new ArrayList string();

  允许扩展。add( jpg );

  允许扩展。添加(“png”);

  允许扩展。add( gif );

  //1乱码

  请求。setcharacterencoding(“utf-8”);

  回应。设置内容类型( text/html;charset=utf-8 );

  //2使用getParts()获取数据

  收集零件零件=请求。get parts();

  //3遍历

  PrintWriter out=响应。getwriter();

  如果(零件!=nullparts.size()0){

  对于(零件零件:零件){

  //判断表单元素是普通字段,还是文件

  字符串提交文件名=部分。get submitted filename();

  if(submittedFileName==null){//普通字段

  字符串名称=部分。getname();

  字符串值=请求。getparameter(名称);

  System.out.println(名称"."值);

  }else{//文件

  //判断文件是否为

  如果(提交文件名。等于(“”){

  继续;

  }

  //System.out.println(提交的文件名);

  //从请求头中获取文件

  字符串dis=零件。get标头(“内容-处置”);

  字符串filename=dis。子串(dis。lastindexof( filename=)10。长度()-1);

  文件名=文件名。子字符串(文件名。lastindexof( \ \ )1);

  System.out.println(文件名);

  //获取文件名的后缀

  string ext=文件名。子字符串(文件名。lastindexof( . )) 1);

  如果(!allowExts.contains(ext)){

  out.println(文件名不符合上传文件类型要求.);

  继续;

  }

  //把文件保存

  //1创建新的文件名

  字符串新文件名=上传实用程序。创建新文件名(文件名);

  //2创建新的路径

  字符串新路径=上传实用程序。创建新路径(真实路径,文件名);

  部分。写入(新路径文件。分隔符新文件名);

  //删除部分

  部分。delete();

  out.println(上传成功:文件名);

  }

  }

  }

  }

  受保护的void doGet(HttpServletRequest请求,HttpServletResponse响应)引发ServletException,IOException {

  doPost(请求、响应);

  }

  }每个属性表示的内容

  文件下载代码小型应用程序

  @ web servlet(name= download servlet ,value=/download )

  公共类下载Servlet扩展HttpServlet {

  受保护的void doPost(HttpServletRequest请求,HttpServletResponse响应)引发ServletException,IOException {

  //乱码

  请求。setcharacterencoding(“utf-8”);

  //获取文件名

  字符串uuid文件名=请求。getparameter( filename );//d 578 be 74 FD 864 ac2a 879d 77 b 07 f 13793 _ backg。使用jpeg文件交换格式存储的编码图像文件扩展名

  //去掉全局唯一识别

  字符串文件名=uuid文件名。子字符串(uuid文件名。( _ )1)的索引;

  //存放文件的根路径

  字符串实路径=请求。getservletcontext().获取真实路径(/we b-INF/upload );

  //获取真正目录

  字符串路径=上传实用程序。创建新路径(真实路径,文件名);

  文件文件=新文件(路径文件。分隔符uuid文件名);

  if(file.exists()){

  回应。设置标题(内容-处置,附件;filename= URL编码器。encode(文件名,“utf-8”);

  ServletOutputStream OS=response。获取输出流();

  文件输入流fis=新文件输入流(文件);

  字节[]缓冲区=新字节[1024 * 4];

  int len=0;

  while((len=fis.read(buf))!=-1){

  os.write(buf,0,len);

  }

  }否则{

  回应。设置内容类型( text/html;charset=utf-8 );

  response.getWriter().写(文件不存在.);

  }

  }

  受保护的void doGet(HttpServletRequest请求,HttpServletResponse响应)引发ServletException,IOException {

  doPost(请求、响应);

  }

  }每个属性表示的内容

  读取下载文件小型应用程序

  @ web servlet(name= ListFileServlet ,value=/listfile )

  公共类列表文件服务器扩展HttpServlet {

  受保护的void doPost(HttpServletRequest请求,HttpServletResponse响应)引发ServletException,IOException {

  //1读取可以被下载的文件

  字符串实路径=请求。getservletcontext().获取真实路径(/we b-INF/upload );

  HashMapString,String map=new HashMap();

  UploadUtils.listFile(新文件(realPath),地图);

  //2放入域中

  request.setAttribute(map ,map);

  //3转发

  请求。getrequestdispatcher(/list。JSP’).转发(请求、响应);

  }

  受保护的void doGet(HttpServletRequest请求,HttpServletResponse响应)引发ServletException,IOException {

  doPost(请求、响应);

  }

  }工具类小型应用程序

  公共类上传工具{

  公共静态void main(String[] args) {

  字符串s=创建新文件名( AAA。jpg’);

  系统。出去。println(s);

  }

  /**

  * 根据原始文件名产生一个新的文件名

  * @param文件名

  * @返回

  */

  公共静态字符串makeNewFileName(字符串文件名){

  //UUID统一唯一标识码

  String uuid=UUID.randomUUID().toString().替换(-, );//默认32位的16进制

  返回uuid"_ "文件名;

  }

  /**

  * 创建新的路径

  * @param路径

  * @param文件名

  * @返回

  */

  公共静态字符串makeNewPath(字符串路径,字符串文件名){

  int num=文件名。hashcode();//01101011001011011111111111 1111 0101 0101

  int path 1=num 0 xf

  int path 2=(num 4)0xf;

  string new path=path file。分隔符路径1文件。分离器路径2;

  文件目录=新文件(新路径);

  如果(!目录存在()){

  导演。mkdirs();

  }

  返回新路径

  }

  //遍历可以被下载的文件

  公共静态空的列表文件(文件目录、哈希映射字符串、字符串映射){

  文件[]文件=目录。列出文件();

  如果(文件!=nullfiles.length0){

  对于(文件文件:文件){

  if(file.isDirectory()){

  列表文件(文件,映射);

  }否则{

  //文件

  字符串uuid文件名=文件。getname();

  字符串文件名=uuid文件名。子字符串(uuid文件名。( _ )1)的索引;

  map.put(uuidFilename,文件名);

  }

  }

  }

  }

  }相关教程推荐:java入门教程以上就是爪哇岛实现文件的上传和下载功能的详细内容,更多请关注我们其它相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: