`

spring-mvc提供上传图片接口

 
阅读更多
下面提供上传的接口 适用于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();
		}
	}

分享到:
评论

相关推荐

    translation-spring-mvc-4-documentation, Spring MVC 4.2.4 RELEASE 中文文档完整翻译稿.zip

    Spring MVC通过MessageSource接口提供这一功能,开发者可以创建不同语言的资源文件,系统会根据用户的选择自动选择合适的资源。 除此之外,Spring MVC还支持RESTful风格的URL设计、文件上传下载、异常处理、视图...

    开发spring-mvc所必须的九个jar包

    Spring MVC是Spring框架的一部分,它提供了一种用于构建可扩展、高性能和易于维护的Web应用的方法。以下是对Spring MVC开发中必备的九个jar包的详细解释: 1. **spring-webmvc.jar** - 这是Spring MVC的核心库,...

    spring-web和spring-webmvc_4.2.4

    总的来说,`spring-web`和`springs-webmvc`这两个模块构成了Spring框架在Web开发中的基础,它们协同工作,为开发者提供了强大的工具和灵活性,使得构建现代Web应用程序变得更加简单和高效。在实际项目中,开发者通常...

    spring-mvc DEMO

    Spring MVC还提供了验证机制,可以通过Validator接口或者JSR-303 Bean Validation实现对输入数据的校验。 8. **Interceptor(拦截器)**: 拦截器可以拦截请求,进行预处理(如权限检查)和后处理(如日志记录)...

    8-Spring-mvc-文件上传1

    总的来说,Spring MVC通过`MultipartResolver`和`MultipartFile`接口提供了强大的文件上传和下载功能。开发者可以通过配置和编写控制器方法轻松处理文件操作,确保了Web应用的安全性和用户体验。

    spring-mvc-documentation-linesh-translation

    - **允许其他MVC实现**: Spring Web MVC 支持与其他MVC框架集成,提供了一种灵活的方式来扩展应用程序的功能。 - **DispatcherServlet**: DispatcherServlet 是 Spring MVC 的核心组件之一,负责接收 HTTP 请求并将...

    spring-webmvc.rar

    11. **上传文件**:Spring Web MVC提供文件上传功能,可以使用MultipartFile接口处理上传的文件。 12. **RESTful API支持**:Spring Web MVC通过@RequestMapping和HTTP动词(GET、POST、PUT、DELETE等)支持创建...

    spring-webmvc-4.08jar包及相关jar包

    10. **上传文件**:Spring MVC提供了一个MultipartFile接口,可以方便地处理文件上传操作。 11. **RESTful支持**:Spring MVC支持创建RESTful风格的Web服务,通过@RequestMapping注解的HTTP方法属性,可以轻松实现...

    Spring-MVC-step-by-step2.rar

    Spring MVC是Spring框架的一个重要组成部分,它提供了构建Web应用程序的强大工具。在这个教程中,我们将逐步探索Spring MVC的核心概念、配置、以及实际应用。 首先,我们从源码的角度出发,理解Spring MVC的运行...

    Spring-Spring mvc-MyBatis

    Spring MVC作为Spring框架的一个子项目,专注于Web应用的开发,提供了一种清晰的模型-视图-控制器(MVC)设计模式实现。它主要负责处理HTTP请求,并将请求分发到合适的控制器(Controller)上进行处理。Spring MVC的特点...

    spring mvc 4.0

    Spring MVC是Spring框架的一个核心模块,专为构建Web应用程序提供模型-视图-控制器(MVC)架构。在Spring MVC 4.0版本中,它引入了许多改进和新特性,以提升开发效率和应用程序的性能。 1. **依赖注入**:Spring ...

    Spring-MVC

    10. **上传文件**:Spring MVC支持文件上传功能,通过`MultipartFile`接口可以方便地处理文件上传请求。 在项目实践中,Spring MVC与Spring其他模块如Spring AOP(面向切面编程)、Spring JDBC、Spring ORM(对象...

    基于Spring-MVC和Java-COM中间件的新闻管理系统的设计与实现.docx

    Spring MVC是一个流行且强大的Java web开发框架,它提供了模型-视图-控制器(MVC)架构模式,使得开发者能够更清晰地分离业务逻辑、数据处理和用户界面。在新闻管理系统中,Spring MVC负责处理HTTP请求,控制流程,...

    SevenDay-Spring MVC(基于Spring MVC实现文件上传与下载)的源代码

    关于文件上传,Spring MVC提供了一个`MultipartFile`接口,它是处理多部分表单数据的核心。在Controller中,我们可以创建一个方法,接收`MultipartFile`参数,通过这个参数获取上传文件的名称、大小、类型等信息,并...

    sprimg-mvc 基础入门

    13. **Multipart Resolver(多部分解析器)**: 对于上传文件的支持,Spring MVC提供MultipartResolver接口,处理multipart/form-data类型的请求。 在实际项目中,"spring-mvc基础入门"可能包括创建一个简单的Spring...

    spring-web-3.0.6.release.jar.zip

    Spring MVC提供了处理文件上传和下载的便捷API。通过MultipartFile接口,开发者可以方便地处理用户上传的文件,同时也能轻松实现文件的下载服务。 七、安全性与认证 Spring Security是Spring生态系统的一部分,它...

    Spring Web MVC入门教程

    文件上传和下载功能是Web应用中常见的需求之一,Spring Web MVC通过MultipartResolver组件提供了对文件上传的支持。对于表单标签的支持,Spring Web MVC不仅简化了传统JSP标签的使用,还扩展了表单相关的处理能力。 ...

    spring-webmvc.src.zip

    Spring Web MVC 是 Spring 框架的重要组成部分,它为构建基于Java的Web应用程序提供了模型-视图-控制器(MVC)架构。Spring Web MVC 提供了一种优雅的方式来处理HTTP请求和响应,允许开发者专注于业务逻辑,而将视图...

    spring-webmvc.5.1.zip-包含详细注解

    SpringMVC是Spring框架的一个模块,专注于Web应用的模型-视图-控制器(MVC)架构。SpringMVC 5.1版本引入了许多改进和新特性,为开发者提供了更高效、更灵活的开发体验。本压缩包“spring-webmvc.5.1.zip”包含了...

    spring-mvc-source-analysis:高级Spring MVC课程的代码库-mvc source code

    12. **上传文件**: Spring MVC 支持文件上传功能,通过`MultipartFile`接口可以方便地处理文件上传请求。 13. **国际化与本地化**: Spring MVC 支持多语言环境,通过`LocaleResolver`和`MessageSource`可以实现动态...

Global site tag (gtag.js) - Google Analytics