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();
}
}