javaweb 基于springMVC实现文件上传

1. 添加依赖包maven

 <dependency>
      <groupId>commons-fileupload</groupId>
      <artifactId>commons-fileupload</artifactId>
      <version>1.3.2</version>
    </dependency>

2. 配置注入

<!-- 这里申明的id必须为multipartResolver -->
    <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="4096"/><!--内存中的缓存大小-->
    </bean>

3. html

<form target="hidden_frame" id="uploadFromId" enctype="multipart/form-data">
        <input  id="logFileUpload" type="file" name="logFile">
        <input  id="param1" type="text" name="param1" placeholder="请输入要传递的参数1">
        <input  id="param2" type="text" name="param2" placeholder="请输入要传递的参数2">
    </form>
    <button id="fileUploadBtn" >上传</button>

4. js ajax

<script src="/js/jquery-3.2.1.js"></script>
<script>
    $('#fileUploadBtn').click(function () {

        $('#param1').val('传输参数1');
        $('#param2').val('传输参数2');

        var formobj = document.getElementById("uploadFromId");

        var formdata = new FormData(formobj);
        $.ajax({
            url: "logFile.do",
            type: 'POST',
            data: formdata,
            dataType: "text",
            contentType:false,
            processData:false
        }).done(function(result){
            alert(result);
        }).fail(function(err){
            alert(err);
        });

    });
</script>

5. java后台

@RequestMapping(value="logFile.do",method=RequestMethod.POST)
    @ResponseBody
    public String logFile(@RequestParam("logFile")MultipartFile logFile,@RequestParam("param1")String param1,@RequestParam("param2")String param2) throws IOException {

        String filename = logFile.getOriginalFilename();//获取上传文件的文件名
        InputStream file = null;
        try {
             file = logFile.getInputStream();
        } catch (IOException e) {
            e.printStackTrace();
        }
        InputStreamReader inputStreamReader = new InputStreamReader(file,"utf-8");
        BufferedReader bf = new BufferedReader(inputStreamReader);
        String newLine = "";
        while((newLine = bf.readLine()) != null){
            if(newLine.equals("")){

            }else {
                System.out.print("\n newLine = "+newLine);
            }

        }
        System.out.print("\n\n\n filename  = "+filename);
        System.out.print("\n\n\n param1  = "+param1);
        System.out.print("\n\n\n param2  = "+param2);
        return "上传成功";
    }

猜你喜欢

转载自my.oschina.net/u/3697586/blog/1600615