下面提供上传的接口 适用于java代码模拟post请求 如果是html或者jsp页面的post提交则直接用注解来实现
服务端代码
@SuppressWarnings("unused")
@RequestMapping(value = "/{uid}/img/uploadAuthImg", method = {
RequestMethod.GET, RequestMethod.POST })
public String uploadAuth(@PathVariable int uid, HttpServletRequest request,
HttpServletResponse response) throws UnsupportedEncodingException {
response.setContentType("text/plain;charset=utf-8");
request.setCharacterEncoding("UTF-8");
JSONObject json = new JSONObject();
try {
//未解析类提供配置信息
// DiskFileItemFactory factory = new DiskFileItemFactory();
//创建解析类的实例
//ServletFileUpload sfu = new ServletFileUpload(factory);
//设置文件的最大值,4M
//sfu.setSizeMax(1024*1024*4);
//ServletRequestContext src = new ServletRequestContext(request);
// List<FileItem> items = sfu.parseRequest(request);
// for(FileItem item : items){
// if(item.isFormField()){ //username="username"
// String name = item.getFieldName();
// String value = item.getString("utf-8");
//
// System.out.println(name + " = " + value);
// } else { //鏂囦欢
// String name = item.getName();
// item.write(new File(dir, System.currentTimeMillis() +
// name.substring(name.lastIndexOf("."))));
//
// }
//
// }
// 读取数据流 这里因为在springmvc中配置了 所以用这种方式 上面的方式不可行了
Map<String, String> param = ServletUtil.paramToMap(request);//其他的数据参数 如果是上面这种则会在name-value中取出来
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
List<MultipartFile> fileList = multipartRequest.getFiles("file");
InputStream is = null;
for (MultipartFile mf : fileList) {
if (!mf.isEmpty()) {
String filename = mf.getOriginalFilename();
System.out.println(filename);
is = mf.getInputStream();
}
}
// 下面就是对springmvc中的mf进行处理 可以处理成file 也可以处理成流来存储
// 处理业务逻辑后再掉统一用户中心
// String brandList = service.uploadAuthImg(param, is);上传到fastdfs中
} catch (Exception e) {
logger.error(e);
json.put(ResultKeyConstant.DATA, "");
json.put(ResultKeyConstant.ERROR_CODE,
ErrorCodeConstant.COMMON_UNKNOWN_ERROR);// 系统内部错误
json.put(ResultKeyConstant.ERROR_MESSAGE, messageService
.getMessage(ErrorCodeConstant.COMMON_UNKNOWN_ERROR));
}
try {
PrintWriter out = response.getWriter();
out.print(json.toString());
out.close();
} catch (Exception e) {
logger.error(e);
}
return null;
}
客服端请求 用的是httpcomponents-client-4.5.2-bin.tar这个httpclient实现的
public static void main(String[] args) throws IOException {
// HttpPost httppost = new
// HttpPost("http://10.18.154.14:8080/open-web/api/upload/1234/img/uploadAuthImg2");
// "F:"+File.separator+"ds.jpg"
CloseableHttpClient httpclient = HttpClients.createDefault();
try {
HttpPost httppost = new HttpPost(
"http://10.18.154.14:8080/open-web/api/upload/123/img/uploadAuthImg");
FileBody bin = new FileBody(new File("F:" + File.separator
+ "ds.jpg"));
Map<String, Object> paramMap = new HashMap<String, Object>();
paramMap.put("mid", "4c8cc01a-d280-48e7-a8ae-2cef232d85bc");
paramMap.put("user_name", "测试测试");
paramMap.put("type", "jpg");
paramMap.put("identify", "430869594605632215");
StringBody param = new StringBody(JSONObject.fromObject(paramMap)
.toString(), ContentType.TEXT_PLAIN);
HttpEntity reqEntity = MultipartEntityBuilder.create()
.addPart("file", bin).addPart("param", param).build();
httppost.setEntity(reqEntity);
CloseableHttpResponse response = httpclient.execute(httppost);
try {
System.out.println("----------------------------------------");
System.out.println(response.getStatusLine());
HttpEntity resEntity = response.getEntity();
if (resEntity != null) {
String result = EntityUtils.toString(resEntity);
System.out.println(result);
}
// EntityUtils.consume(resEntity);
} finally {
response.close();
}
} finally {
httpclient.close();
}
}
分享到:
相关推荐
Spring MVC通过MessageSource接口提供这一功能,开发者可以创建不同语言的资源文件,系统会根据用户的选择自动选择合适的资源。 除此之外,Spring MVC还支持RESTful风格的URL设计、文件上传下载、异常处理、视图...
Spring MVC是Spring框架的一部分,它提供了一种用于构建可扩展、高性能和易于维护的Web应用的方法。以下是对Spring MVC开发中必备的九个jar包的详细解释: 1. **spring-webmvc.jar** - 这是Spring MVC的核心库,...
总的来说,`spring-web`和`springs-webmvc`这两个模块构成了Spring框架在Web开发中的基础,它们协同工作,为开发者提供了强大的工具和灵活性,使得构建现代Web应用程序变得更加简单和高效。在实际项目中,开发者通常...
Spring MVC还提供了验证机制,可以通过Validator接口或者JSR-303 Bean Validation实现对输入数据的校验。 8. **Interceptor(拦截器)**: 拦截器可以拦截请求,进行预处理(如权限检查)和后处理(如日志记录)...
总的来说,Spring MVC通过`MultipartResolver`和`MultipartFile`接口提供了强大的文件上传和下载功能。开发者可以通过配置和编写控制器方法轻松处理文件操作,确保了Web应用的安全性和用户体验。
- **允许其他MVC实现**: Spring Web MVC 支持与其他MVC框架集成,提供了一种灵活的方式来扩展应用程序的功能。 - **DispatcherServlet**: DispatcherServlet 是 Spring MVC 的核心组件之一,负责接收 HTTP 请求并将...
11. **上传文件**:Spring Web MVC提供文件上传功能,可以使用MultipartFile接口处理上传的文件。 12. **RESTful API支持**:Spring Web MVC通过@RequestMapping和HTTP动词(GET、POST、PUT、DELETE等)支持创建...
10. **上传文件**:Spring MVC提供了一个MultipartFile接口,可以方便地处理文件上传操作。 11. **RESTful支持**:Spring MVC支持创建RESTful风格的Web服务,通过@RequestMapping注解的HTTP方法属性,可以轻松实现...
Spring MVC是Spring框架的一个重要组成部分,它提供了构建Web应用程序的强大工具。在这个教程中,我们将逐步探索Spring MVC的核心概念、配置、以及实际应用。 首先,我们从源码的角度出发,理解Spring MVC的运行...
Spring MVC作为Spring框架的一个子项目,专注于Web应用的开发,提供了一种清晰的模型-视图-控制器(MVC)设计模式实现。它主要负责处理HTTP请求,并将请求分发到合适的控制器(Controller)上进行处理。Spring MVC的特点...
Spring MVC是Spring框架的一个核心模块,专为构建Web应用程序提供模型-视图-控制器(MVC)架构。在Spring MVC 4.0版本中,它引入了许多改进和新特性,以提升开发效率和应用程序的性能。 1. **依赖注入**:Spring ...
10. **上传文件**:Spring MVC支持文件上传功能,通过`MultipartFile`接口可以方便地处理文件上传请求。 在项目实践中,Spring MVC与Spring其他模块如Spring AOP(面向切面编程)、Spring JDBC、Spring ORM(对象...
Spring MVC是一个流行且强大的Java web开发框架,它提供了模型-视图-控制器(MVC)架构模式,使得开发者能够更清晰地分离业务逻辑、数据处理和用户界面。在新闻管理系统中,Spring MVC负责处理HTTP请求,控制流程,...
关于文件上传,Spring MVC提供了一个`MultipartFile`接口,它是处理多部分表单数据的核心。在Controller中,我们可以创建一个方法,接收`MultipartFile`参数,通过这个参数获取上传文件的名称、大小、类型等信息,并...
13. **Multipart Resolver(多部分解析器)**: 对于上传文件的支持,Spring MVC提供MultipartResolver接口,处理multipart/form-data类型的请求。 在实际项目中,"spring-mvc基础入门"可能包括创建一个简单的Spring...
Spring MVC提供了处理文件上传和下载的便捷API。通过MultipartFile接口,开发者可以方便地处理用户上传的文件,同时也能轻松实现文件的下载服务。 七、安全性与认证 Spring Security是Spring生态系统的一部分,它...
文件上传和下载功能是Web应用中常见的需求之一,Spring Web MVC通过MultipartResolver组件提供了对文件上传的支持。对于表单标签的支持,Spring Web MVC不仅简化了传统JSP标签的使用,还扩展了表单相关的处理能力。 ...
Spring Web MVC 是 Spring 框架的重要组成部分,它为构建基于Java的Web应用程序提供了模型-视图-控制器(MVC)架构。Spring Web MVC 提供了一种优雅的方式来处理HTTP请求和响应,允许开发者专注于业务逻辑,而将视图...
SpringMVC是Spring框架的一个模块,专注于Web应用的模型-视图-控制器(MVC)架构。SpringMVC 5.1版本引入了许多改进和新特性,为开发者提供了更高效、更灵活的开发体验。本压缩包“spring-webmvc.5.1.zip”包含了...
12. **上传文件**: Spring MVC 支持文件上传功能,通过`MultipartFile`接口可以方便地处理文件上传请求。 13. **国际化与本地化**: Spring MVC 支持多语言环境,通过`LocaleResolver`和`MessageSource`可以实现动态...