public ModelAndView GetImage(HttpServletRequest request,
   HttpServletResponse response) throws Exception {
  Map<String, Object> maps = new HashMap<String, Object>();

try {
   // 创建一个临时文件存放要上传的文件,第一个参数为上传文件大小,第二个参数为存放的临时目录
   DiskFileItemFactory factory = new DiskFileItemFactory(
     1024 * 1024 * 5, new File("D:\\temp1"));
   // 设置缓冲区大小为 5M
   factory.setSizeThreshold(1024 * 1024 * 5);
   // 创建一个文件上传的句柄
   ServletFileUpload upload = new ServletFileUpload(factory);

// 设置上传文件的整个大小和上传的单个文件大小
   upload.setSizeMax(1024 * 1024 * 50);
   upload.setFileSizeMax(1024 * 1024 * 5);

try {
    // 把页面表单中的每一个表单元素解析成一个FileItem
    List<FileItem> items = upload.parseRequest(request);
    for (FileItem fileItem : items) {
     // 如果是一个普通的表单元素(type不是file的表单元素)
     if (fileItem.isFormField()) {
      System.out.println(fileItem.getFieldName()); // 得到对应表单元素的名字
      System.out.println(fileItem.getString()); // 得到表单元素的值
     } else {

// 获取文件的后缀名
      String fileName = fileItem.getName();// 得到文件的名字
      String fileExt = fileName.substring(
        fileName.lastIndexOf(".") + 1,
        fileName.length());
      String a = System.currentTimeMillis() + "";
      String path = request.getRealPath("/") + "kmtp/"
        + "IOS" + a + ".jpg";
      String url = "http://" + request.getServerName() + ":"
        + request.getServerPort() + "/"
        + request.getContextPath() + "kmtp/" + "IOS"
        + a + ".jpg";
      String extension = path.substring(
        path.lastIndexOf(".") + 1, path.length());
      Pattern pattern = Pattern.compile("bmp|gif|gepg|png|");
      Matcher matcher = pattern.matcher(extension);
      if (matcher.find()) {
       try {

fileItem.write(new File(path));
        maps.put("message", url);
       } catch (Exception e) {
        e.printStackTrace();
        maps.put("message", "0");
       }
      } else {
       System.out.println("该文件类型不能够上传");
       maps.put("message", "0");
      }
     }
    }
   } catch (FileUploadBase.SizeLimitExceededException e) {
    System.out.println("整个请求的大小超过了规定的大小...");
    maps.put("message", "0");
   } catch (FileUploadBase.FileSizeLimitExceededException e) {
    System.out.println("请求中一个上传文件的大小超过了规定的大小...");
    maps.put("message", "0");
   } catch (FileUploadException e) {
    e.printStackTrace();
    maps.put("message", "0");
   }

} catch (Exception e) {
   logger.error(e.getStackTrace());
   e.printStackTrace();
   maps.put("message", "0");

}
  // 返回结果 0系统错误,
  response.getWriter().write(
    URLEncoder.encode(JSONObject.fromObject(maps).toString(),
      "UTF-8"));
  return null;
 }

IOS后台文件上传的更多相关文章

  1. IOS 多文件上传 Java web端(后台) 使用List<MultipartFile> 接收出现的问题

    先上正确的示例: 主要是设置我们的request的content-type为multipart/form-data NSDictionary *param = @{@"assignee&qu ...

  2. 【iOS】文件上传小记

    iOS由该系统提供API可以实现可以实现文件的上传和下载,有两种方法来. NSURLConnection与NSURLSession. 当中NSURLConnection是使用非常久的的一种方式.NSU ...

  3. jfinal 后台文件上传(结合上一篇(h5 图片回显))

    前端用了jquery.form.js插件异步提交表单 $("#imgForm").ajaxSubmit();//户主头像 /** * * @description 上传户主头像 * ...

  4. OpenSNS后台文件上传漏铜分析

    前言 这几天正在想找个文件上传漏洞分析一波,以加深对文件上传漏洞的理解,正好看到FreeBuf的一片文章记对OpenSNS的一次代码审计,由于其只对漏洞进行复现,故在此进行代码层面的分析. 漏洞分析 ...

  5. ios 多文件上传

    /** *  上传多个文件 * *  @param url      请求接口地址 *  @param filedata 文件名称和数据(key:value) *  @param btnName  上 ...

  6. 【总结】java 后台文件上传整理

    public Map<String,String> clientUploadAttachment(Long belongId, String fileSource, MultipartFi ...

  7. Angular14 利用Angular2实现文件上传的前端、利用springBoot实现文件上传的后台、跨域问题

    一.angular2实现文件上传前端 Angular2使用ng2-file-upload上传文件,Angular2中有两个比较好用的上传文件的第三方库,一个是ng2-file-upload,一个是ng ...

  8. ASP.NET 大文件上传的简单处理

    在 ASP.NET 开发的过程中,文件上传往往使用自带的 FileUpload 控件,可是用过的人都知道,这个控件的局限性十分大,最大的问题就在于上传大文件时让开发者尤为的头疼,而且,上传时无法方便的 ...

  9. iOS实现文件上传功能模块

    iOS实现文件上传功能,首先要知道的是,上传到服务器的数据格式,一般采用HTTP文件上传协议.如下图 如图所示,只要设置好了HTTP的协议格式,就可以实现文件上传功能. 代码如下: //图片上传模块 ...

随机推荐

  1. [Codeforces #188] Tutorial

    Link: Codeoforces #188 传送门 A: 先全转为正数,后面就全是指数级增长了 #include <bits/stdc++.h> using namespace std; ...

  2. 【差分约束系统】【最短路】【spfa】CDOJ1646 穷且益坚, 不坠青云之志。

    求一个有n个元素的数列,满足任意连续p个数的和不小于s, 任意连续q个数的和不大于t. 令sum[i]表示前i项的和(0<=i<=n,sum[0]=0) 那么题目的条件可转化为: sum[ ...

  3. 20162307 实验三 敏捷开发与XP实践

    实验三 <敏捷开发与XP实践> 北京电子科技学院(BESTI) 实 验 报 告 课程:程序设计与数据结构 班级:1623 姓名:张韵琪 学号:20162307 指导教师:娄佳鹏老师.王志强 ...

  4. [CodeForces-759D]Bacterial Melee

    题目大意: 有一串n个字母,每个位置的字母可以同化边上的一个字母, 比如:ab可以变成aa或者bb. 相对的两个同化不能同时发生,比如ab不能变成ba. 现在给你一个字符串,问你经过任意次数的同化过程 ...

  5. 20172333 2017-2018-2 《Java程序设计》第5周学习总结

    20172333 2017-2018-2 <Java程序设计>第5周学习总结 教材学习内容 1.if语句.if-else语句.switch语句 都是通过对于布尔表达式的结果来进行是否执行下 ...

  6. 一段javascript设计模式应用场景

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <hea ...

  7. SpringMVC中拦截器的使用

    什么是拦截器 拦截器通常一般指的是通过拦截从浏览器发往服务器的一些请求来完成某些功能的一段程序代码一般在一个请求发生之前,发生时,发生后我们都可以对请求进行拦截 拦截器可以做什么 拦截器可以用于权限验 ...

  8. mac远程链接 windows

    https://bbs.feng.com/read-htm-tid-10516042.html 一.利用电脑系统自带的远程(喜欢懒人版的方法,或者小白用户,可以跳过这个方法看下一个) 1.打开mac, ...

  9. Bootstrap导航栏实例讲解

    导航栏是一个很好的功能,是 Bootstrap 网站的一个突出特点.导航栏是响应式元组件就,作为应用程序或网站的导航标题.导航栏在移动设备的视图中是折叠的,随着可用视口宽度的增加,导航栏也会水平展开. ...

  10. 让你明白response.sendRedirect()与request.getRequestDispatcher().forward()区别

    JSP中response.sendRedirect()与request.getRequestDispatcher().forward(request,response)这两个对象都可以使页面跳转,但是 ...