IOS后台文件上传
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后台文件上传的更多相关文章
- IOS 多文件上传 Java web端(后台) 使用List<MultipartFile> 接收出现的问题
先上正确的示例: 主要是设置我们的request的content-type为multipart/form-data NSDictionary *param = @{@"assignee&qu ...
- 【iOS】文件上传小记
iOS由该系统提供API可以实现可以实现文件的上传和下载,有两种方法来. NSURLConnection与NSURLSession. 当中NSURLConnection是使用非常久的的一种方式.NSU ...
- jfinal 后台文件上传(结合上一篇(h5 图片回显))
前端用了jquery.form.js插件异步提交表单 $("#imgForm").ajaxSubmit();//户主头像 /** * * @description 上传户主头像 * ...
- OpenSNS后台文件上传漏铜分析
前言 这几天正在想找个文件上传漏洞分析一波,以加深对文件上传漏洞的理解,正好看到FreeBuf的一片文章记对OpenSNS的一次代码审计,由于其只对漏洞进行复现,故在此进行代码层面的分析. 漏洞分析 ...
- ios 多文件上传
/** * 上传多个文件 * * @param url 请求接口地址 * @param filedata 文件名称和数据(key:value) * @param btnName 上 ...
- 【总结】java 后台文件上传整理
public Map<String,String> clientUploadAttachment(Long belongId, String fileSource, MultipartFi ...
- Angular14 利用Angular2实现文件上传的前端、利用springBoot实现文件上传的后台、跨域问题
一.angular2实现文件上传前端 Angular2使用ng2-file-upload上传文件,Angular2中有两个比较好用的上传文件的第三方库,一个是ng2-file-upload,一个是ng ...
- ASP.NET 大文件上传的简单处理
在 ASP.NET 开发的过程中,文件上传往往使用自带的 FileUpload 控件,可是用过的人都知道,这个控件的局限性十分大,最大的问题就在于上传大文件时让开发者尤为的头疼,而且,上传时无法方便的 ...
- iOS实现文件上传功能模块
iOS实现文件上传功能,首先要知道的是,上传到服务器的数据格式,一般采用HTTP文件上传协议.如下图 如图所示,只要设置好了HTTP的协议格式,就可以实现文件上传功能. 代码如下: //图片上传模块 ...
随机推荐
- 数据库SQL归纳(三)
数据查询功能 单表查询 选择若干列 1. 指定列 SELECT 列名称 FROM 表名称 2. 全部列 SELECT * FROM 表名称 3. 经过计算的列 SELECT Sname, 2019-S ...
- [UOJ409]Highway Tolls
题意:交互题,给定一个简单无向图和$A,B(1\leq A\lt B)$,你可以对每条边指定其边权为$A$或$B$后通过交互库询问$S\rightarrow T$的最短路($S,T$在程序运行之前已经 ...
- 【manacher】HDU4513-吉哥系列故事——完美队形II
[题目大意] 求最长回文队伍且队伍由中间向两边递减. [思路] 和字符串一样的做法,在递推的时候增加判断条件:a[i-p[i]]<=a[i-p[i]+2]. #include<iostre ...
- CSS3新增属性2
阴影 box-shadow:水平偏移 垂直偏移; 偏移可以负值 box-shadow:水平偏移 垂直偏移 颜色; box-shadow:水平偏移 垂直偏移 模糊值 颜色; /*最常见的*/ box-s ...
- js作用域对象与运用技巧
1. JS作用域 1.1 全局作用域和局部作用域 函数外面声明的就是 全局作用域 函数内是局部作用域 全局变量可以直接在函数内修改和使用 变量,使用var是声明,没有var是使用变量. 如果在函数内使 ...
- [NOIp2016提高组]换教室
题目大意: 有n节课,第i节课在c[i]上课,同时d[i]也有一节课d[i]. 你有权利向教务处发出m次申请把自己的教室改到d[i],相应的批准概率是k[i]. 教室是图上的一些点,其中每条边都有边权 ...
- WPF中的动画——(五)关键帧动画
与 From/To/By 动画类似,关键帧动画以也可以以动画形式显示目标属性值. 和From/To/By 动画不同的是, From/To/By 动画只能控制在两个状态之间变化,而关键帧动画则可以在多个 ...
- redis节点管理-新增从节点
原文:http://blog.sina.com.cn/s/blog_53b45c4d0102wg12.html 新增从节点 新增一个节点7008节点,使用add-node --slave命令. [pl ...
- iOS开发--地图与定位
概览 现在很多社交.电商.团购应用都引入了地图和定位功能,似乎地图功能不再是地图应用 和导航应用所特有的.的确,有了地图和定位功能确实让我们的生活更加丰富多彩,极大的改变了我们的生活方式.例如你到了一 ...
- 谈谈Ext JS的组件——布局的用法续一
盒子布局 盒子布局主要作用是以水平(Ext.layout.container.HBox)或垂直方式(Ext.layout.container.VBox)来划分容器区域.这也是比較常有的布局方式. 使用 ...