layui文件上传

tomcat中配置虚拟路径:

<Context path="/photo" docBase="d:\chapter"/>

path属性,用于指定Web应用的虚拟路径 
docBase属性,用于指定该虚拟路径,所映射到的本地文件系统目录,可以使用绝对路径,或者相对于<Tomcat安装目录>/webapps的相对路径

访问d:\chapter下test.jpg,如下:

 

----------------

注意: 配置完虚拟路劲后,重启tomcat生效

 

注意文件 上传==================

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>layui</title>
  <meta name="renderer" content="webkit">
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
  <link rel="stylesheet" type="text/css" href="layui/css/layui.css"/>
  <script src="layui/layui.js" type="text/javascript" charset="utf-8"></script>
  <!-- 注意:如果你直接复制所有代码到本地,上述css路径需要改成你本地的 -->
</head>
<body>
          
<blockquote class="layui-elem-quote">为节省服务器开销,以下示例均未配置真实上传接口,所以每次上传都会报提示:请求上传接口出现异常,这属于正常现象。</blockquote>   
          
<fieldset class="layui-elem-field layui-field-title" style="margin-top: 30px;">
  <legend>常规使用:普通图片上传</legend>
</fieldset>
 <!-- <img src="http://127.0.0.1:8080/photo/test.jpg" > -->
 <!-- <img src="http://127.0.0.1:8080/photo/test.jpg" > -->
<div class="layui-upload">
  <button type="button" class="layui-btn" id="test1">上传图片</button>
  <div class="layui-upload-list">
    <img class="layui-upload-img" id="demo1">
    <p id="demoText"></p>
  </div>
</div>   

<a href="http://127.0.0.1:8080/photo/FCRA20181128001.jpg">下载</a>

<script type="text/javascript">
    layui.use(["jquery", "upload", "form", "layer", "element"], function () {
        var $ = layui.$,
            element = layui.element,
            layer = layui.layer,
            upload = layui.upload,
            form = layui.form;
        //普通图片上传
  var uploadInst = upload.render({
    elem: '#test1'
    ,url: 'http://127.0.0.1:80/upload'
    ,before: function(obj){
      //预读本地文件示例,不支持ie8
      obj.preview(function(index, file, result){
        // $('#demo1').attr('src', result); //图片链接(base64)
      });
    }
    ,done: function(res, index, upload){
		console.log()
		console.log(index)
		console.log(upload)
      //如果上传失败
      if(res[0]=="0"){
		  $('#demo1').attr('src', "http://127.0.0.1:8080/photo/FCRA20181128001.jpg")
         layer.msg('上传成功');
		 $("a").attr("href",res[1])
      }else{
		   layer.msg('上传失败');
	  }
      //上传成功
    }
    ,error: function(){
      //演示失败状态,并实现重传
      var demoText = $('#demoText');
      demoText.html('<span style="color: #FF5722;">上传失败</span> <a class="layui-btn layui-btn-xs demo-reload">重试</a>');
      demoText.find('.demo-reload').on('click', function(){
        uploadInst.upload();
      });
    }
  });
    });
</script>

</body>
</html>
package com.oceam.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.text.SimpleDateFormat;
import java.util.*;

/**
 * 本类功能简述:
 * 〈〉
 *
 * @author caidingnu
 * @create 2019/3/7
 * @since 1.0.0
 */
@Controller
@CrossOrigin("*")
public class Upload2 {
    //图片上传

    /**
     * 个人信息上传
     *
     * @return {Result}
     */
    @RequestMapping(value = "/upload", method = {RequestMethod.POST})
    @ResponseBody
    public Object headImg(@RequestParam(value = "file", required = false) MultipartFile file) throws Exception {
        String originalName = file.getOriginalFilename();

        File file1=new File("http://localhost:8080/photo/"+originalName);
        file.transferTo(file1);
        List<String> list=new ArrayList<String>(){{
            add("0");
            add(file1.toString());
        }};

        return list;
    }
}

三:Spring Boot默认文件上传大小为2M,多文档上传中总是出现文件大小超出限度

解决方法:

a、在application.properties文件中设置文件大小

# Single file max size  
multipart.maxFileSize=50Mb
# All files max size  
multipart.maxRequestSize=50Mb

  但是,事实证明此种方法不能够解决以上问题

b、在启动类App.class文件中配置Bean来设置文件大小

复制代码

import javax.servlet.MultipartConfigElement;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.MultipartConfigFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * Hello world!
 *
 */
@SpringBootApplication
@Configuration
public class App 
{
    public static void main( String[] args )
    {
        System.out.println( "Hello World!" );
        SpringApplication.run(App.class, args);
    }
    
    /**  
     * 文件上传配置  
     * @return  
     */  
    @Bean  
    public MultipartConfigElement multipartConfigElement() {  
        MultipartConfigFactory factory = new MultipartConfigFactory();  
        //单个文件最大  
        factory.setMaxFileSize("10240KB"); //KB,MB  
        /// 设置总上传数据总大小  
        factory.setMaxRequestSize("102400KB");  
        return factory.createMultipartConfig();  
    }  
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蔡定努

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值