java接收ios文件上传的示例代码

 更新时间:2018年05月24日 08:59:02   作者:小小Blog  
这篇文章主要为大家详细介绍了java接收ios文件上传的示例代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了java如何接收ios文件上传的具体代码,供大家参考,具体内容如下

ios Multipart/form-data POST请求java后台spring接口一直出错,搞了两天,终于解决了,积累下来

package com.xx.controller;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

import com.nupaApp.model.FileMeta;

@Controller
@RequestMapping("/controller")
public class File1Controller {

 LinkedList<FileMeta> files = new LinkedList<FileMeta>();
 FileMeta fileMeta = null;

 /***************************************************
  * URL: /rest/controller/upload upload(): receives files
  * 
  * @param request
  *   : MultipartHttpServletRequest auto passed
  * @param response
  *   : HttpServletResponse auto passed
  * @return LinkedList<FileMeta> as json format
  * @throws IOException
  * @throws FileUploadException
  ****************************************************/
 @RequestMapping(value = "/upload", method = RequestMethod.POST)
 @ResponseBody
 public String upload(HttpServletRequest request, HttpServletResponse response)
   throws IOException, FileUploadException {

  boolean isMultipart = ServletFileUpload.isMultipartContent(request);// 判断是否是表单文件类型
  DiskFileItemFactory factory = new DiskFileItemFactory();
  ServletFileUpload sfu = new ServletFileUpload(factory);
  List items = sfu.parseRequest(request);// 从request得到所有上传域的列表
  for (Iterator iter = items.iterator(); iter.hasNext();) {
   FileItem fileitem = (FileItem) iter.next();
   if (!fileitem.isFormField() && fileitem != null) {// 判读不是普通表单域即是file
                // 操作fileitem文件步骤,可以获取大小、路径

    // 定义图片输出路径
    String imgPath = "e:" + System.currentTimeMillis() + ".jpg";
    // 定义图片流
    InputStream fin = fileitem.getInputStream();

    // 定义图片输出流
    FileOutputStream fout = new FileOutputStream(imgPath);
    // 写文件
    byte[] b = new byte[1024];
    int length = 0;
    while ((length = fin.read(b)) > 0) {

     fout.write(b, 0, length);
    }

    // 关闭数据流
    fin.close();
    fout.close();
   }

  }

  return "200";
 }

}

pom.xml 添加

<!-- 这个用于上传文件工具操作 -->
  <dependency>
   <groupId>commons-fileupload</groupId>
   <artifactId>commons-fileupload</artifactId>
   <version>1.3.1</version>
  </dependency>
  <dependency>
   <groupId>commons-io</groupId>
   <artifactId>commons-io</artifactId>
   <version>2.4</version>
  </dependency>

spring-config.xml 添加bean

<!-- 配置文件上传,如果没有使用文件上传可以不用配置,当然如果不配,那么配置文件 中也不必引入上传组件包 -->
 <bean id="multipartResolver "
  class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
  <!-- 默认编码 -->
  <property name="defaultEncoding" value="utf-8" />
  <!-- 文件大小最大值 -->
  <property name="maxUploadSize" value="10485760000" />
  <!-- 内存中的最大值 -->
  <property name="maxInMemorySize" value="40960" />
 </bean>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • OpenFeign无法远程调用问题及解决

    OpenFeign无法远程调用问题及解决

    文章介绍了在使用Feign客户端时遇到的读超时问题,并分析了原因是系统启动时未先加载Nacos配置,为了解决这个问题,建议将Nacos配置放在`bootstrap.yml`文件中,以便项目启动时优先加载Nacos配置
    2024-11-11
  • SpringCloud集成Hystrix熔断过程分步分解

    SpringCloud集成Hystrix熔断过程分步分解

    通过hystrix可以解决雪崩效应问题,它提供了资源隔离、降级机制、融断、缓存等功能。接下来通过本文给大家分享SpringCloud集成Hystrix熔断,感兴趣的朋友一起看看吧
    2022-09-09
  • 带你重新认识Java动态代理

    带你重新认识Java动态代理

    这篇文章主要为大家介绍了Java的动态代理,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2021-11-11
  • springboot中非容器类如何获取配置文件数据

    springboot中非容器类如何获取配置文件数据

    这篇文章主要介绍了springboot中非容器类如何获取配置文件数据问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • java读取resource目录下文件的方法示例

    java读取resource目录下文件的方法示例

    这篇文章主要介绍了利用java读取resource目录下文件的方法,文中给出了详细的示例代码,相信对大家具有一定的参考借鉴,需要的朋友们下面来一起看看吧。
    2017-02-02
  • MyBatis中的@SelectProvider注解源码分析

    MyBatis中的@SelectProvider注解源码分析

    这篇文章主要介绍了MyBatis中的@SelectProvider注解源码分析,@SelectProvider功能就是用来单独写一个class类与方法,用来提供一些xml或者注解中不好写的sql,今天就来说下这个注解的具体用法与源码,需要的朋友可以参考下
    2024-01-01
  • Intellij IDEA创建spring-boot项目的图文教程

    Intellij IDEA创建spring-boot项目的图文教程

    本文通过图文并茂的形式给大家介绍了Intellij IDEA创建spring-boot项目的教程,本文给大家介绍的非常详细,具有参考借鉴价值,需要的朋友参考下吧
    2018-01-01
  • 构建springboot自动生成mapper文件和dao接口项目的步骤和配置方法

    构建springboot自动生成mapper文件和dao接口项目的步骤和配置方法

    这篇文章主要介绍了构建springboot自动生成mapper文件和dao接口项目的步骤和配置方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-05-05
  • FluentMybatis实现mybatis动态sql拼装和fluent api语法

    FluentMybatis实现mybatis动态sql拼装和fluent api语法

    本文主要介绍了FluentMybatis实现mybatis动态sql拼装和fluent api语法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • java实现直线分形山脉

    java实现直线分形山脉

    这篇文章主要为大家详细介绍了java实现直线分形山脉,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01

最新评论