上传图片

约定不等于承诺〃 2022-06-08 05:22 150阅读 0赞
  1. //servlet
  2. request.setCharacterEncoding("UTF-8");
  3. InputStream input = null;
  4. FileOutputStream output = null;
  5. // 创建磁盘工厂对象
  6. DiskFileItemFactory factory = new DiskFileItemFactory();
  7. // 对磁盘工厂对象的处理工具
  8. ServletFileUpload upload = new ServletFileUpload(factory);
  9. // 设置上传大小,最大3M
  10. upload.setFileSizeMax(1024 * 1024 * 3);
  11. // 从request中转换成文件对象列表
  12. List<FileItem> items = upload.parseRequest(request);
  13. for (FileItem item : items) {
  14. // 判断是否是普通表单数据
  15. if (item.isFormField()) {
  16. // System.out.println(item.getFieldName());
  17. // //文件名称设置编码格式,否则乱码
  18. // System.out.println(item.getString("UTF-8"));
  19. // System.out.println(item.getContentType());
  20. // System.out.println(item.getSize());
  21. } else {
  22. // 得到上传的名字
  23. String filename = item.getName();
  24. System.out.println(filename);
  25. // 处理上传文件路径
  26. if (filename != null) {
  27. filename = FilenameUtils.getName(filename);// 得到文件名+后缀
  28. if(filename.lastIndexOf(".")==-1){
  29. request.setCharacterEncoding("UTF-8");
  30. PrintWriter out = response.getWriter();
  31. out.println("您输入的图片为空");
  32. return;
  33. }
  34. String type = filename.substring(filename.lastIndexOf("."));
  35. System.out.println(type);
  36. // 解决文件同名的问题
  37. filename = UUID.randomUUID() + "_" + filename;
  38. // 设置时间路径的目录
  39. SimpleDateFormat dateFormate = new SimpleDateFormat("yyyy-MM-dd");
  40. String datePath = dateFormate.format(new Date());
  41. File file = new File(this.getServletContext().getRealPath("/WEB-INF/" +
  42. datePath));
  43. System.out.println(file);
  44. if (!file.exists()) {
  45. file.mkdirs();
  46. }
  47. // 上传到服务器
  48. input = item.getInputStream();
  49. output = new FileOutputStream(file + "/" + filename);
  50. int len = 0;
  51. byte[] b = new byte[1024];
  52. while ((len = input.read(b)) != -1) {
  53. output.write(b, 0, len);
  54. }
  55. }
  56. }
  57. //页面
  58. <form action="up" enctype="multipart/form-data" method="post">
  59. 名称:<input type="text" name="fileName"/><p/>
  60. 图片:<input type="file" name="fileDate"/><p/>
  61. 图片:<input type="file" name="fileDate2"/>
  62. <input type="submit" value="提交"/>
  63. </form>

发表评论

表情:
评论列表 (有 0 条评论,150人围观)

还没有评论,来说两句吧...

相关阅读

    相关 图片

    上篇博客已经介绍了文件的上传,这次就简单总结一下图片的上传,以及上传图片的显示。 利用三个控件:Input(File)、Button控件、Image控件,页面简单设计如下图:

    相关 图片

    开发工具与关键技术:Visual Studio 作者:肖广斌 撰写时间:2019年5月12日 在做项目时,我们在完善一些个人信息、或者一些页面时,我们需要用到图片,