SpringBoot+Vue+Ant组件实现图片上传

<template>
	<a-upload
		name="file"
		list-type="picture-card"
		class="avatar-uploader"
		:show-upload-list="false"
		action="/crmapi/upload/uploadPic"
		:before-upload="beforeUpload"
		@change="handleChange"
		>
			<img v-if="imageUrl" :src="imageUrl" alt="avatar" />
			<div v-else>
				<a-icon :type="photoLoading ? 'loading' : 'plus'" />
					<div class="ant-upload-text">
                            Upload
					</div>
			</div>
	</a-upload>
</template>
<script>
function getBase64(img, callback) {
    const reader = new FileReader();
    reader.addEventListener('load', () => callback(reader.result));
    reader.readAsDataURL(img);
}
export default {
	data() {
	        return {
	        	photoLoading: false,
	            imageUrl: '',
			};
	},
}
 methods: {
        handleChange(info) {
            console.log(info)
            if (info.file.status === 'uploading') {
                this.photoLoading = true;
                return;
            }
            if (info.file.status === 'done') {
                console.log(info.file.originFileObj)
                getBase64(info.file.originFileObj, imageUrl => {
                    this.imageUrl = imageUrl;
                    this.photoLoading = false;
                });
                this.file = info.file.originFileObj
            }
        },
        beforeUpload(file) {
            console.log(file)
            const isJpgOrPng = file.type === 'image/jpeg' || file.type === 'image/png';
            if (!isJpgOrPng) {
                this.$message.error('You can only upload JPG file!');
            }
            const isLt2M = file.size / 1024 / 1024 < 2;
            if (!isLt2M) {
                this.$message.error('Image must smaller than 2MB!');
            }
            return isJpgOrPng && isLt2M;
        },
        }
</script>
  • 配置文件配置信息
#图片上传
spring.servlet.multipart.enabled=true
#单个数据的大小
spring.servlet.multipart.max-file-size=3MB
#总数据的大小
spring.servlet.multipart.max-request-size=3MB
#文件夹路径
pic_path=D:\\pic
  • 后台方法代码
@RestController
@RequestMapping("/upload")
public class CheckController {
	@Value("${pic_path}")
    private String pic_path;

 	/**
     * 图片上传
     * @param file 图片对象
     */
    @PostMapping("/uploadPic")
    public String uploadPic(@RequestParam MultipartFile file, HttpServletRequest request) throws Exception {
    	// 文件路径
        String path = "";
        // 判断上传的文件是否为空
        if (file != null) {
            String type = "";
            String fileName = file.getOriginalFilename();// 文件原名称
            
            // 获取文件类型
            type = fileName.indexOf(".") != -1 ? fileName.substring(fileName.lastIndexOf(".") + 1, fileName.length()) : null;
           
            // 文件类型不为空时
            if (type != null) {
                //过滤文件类型
                if ("PNG".equals(type.toUpperCase()) || "JPG".equals(type.toUpperCase())) {
                    // 自定义的文件名称
                    String newFileName = String.valueOf(System.currentTimeMillis()) + "." + type;

                    //判断所存放文件夹是否存在,不存在则创建
                    File dir = new File(pic_path);
                    if (!dir.exists()) {
                        dir.mkdirs();
                    }
                    
                    //图片存放路径
                    path = pic_path+"\\"+fileName;
                    
                    // 转存文件到指定的路径
                    file.transferTo(new File(path));

                    return "图片上传成功";
                }
            } else {
                return "图片类型错误";
            }
        } else {
            return "图片不可为空";
        }
        return "图片上传失败";
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 很抱歉,我无法为您提供SpringBoot Vue物业管理系统的代码,因为我是一个语言模型,没有存储任何实际的代码。 不过,如果您想了解有关SpringBoot Vue物业管理系统的信息,我可以尝试回答您的问题,或者提供一些相关的资源和指导。 ### 回答2: Spring BootVue.js是一种常用的技术堆栈,用于构建现代化的Web应用程序。物业管理系统是一个相对复杂的应用程序,涉及到房屋管理、租赁、维护等功能。下面是一个简要的关于使用Spring BootVue.js构建物业管理系统的代码示例。 在后端方面,使用Spring Boot框架来搭建基础代码结构和业务逻辑。例如,创建房屋、合同和维修等实体类,并使用JPA或MyBatis等持久化框架将数据存储到数据库中。同时,配置Spring Security来确保系统的安全性,控制用户访问权限。此外,使用Spring MVC来处理HTTP请求,并提供API接口供前端调用。 在前端方面,使用Vue.js框架来构建用户界面。可以使用Vue Router来实现页面之间的导航和路由功能,以及Vuex来管理全局状态。通过Ajax或axios等工具与后端的API进行数据交互,例如获取房屋信息、添加租赁合同等。使用Element UI或其他UI组件库来设计和实现界面,增加应用程序的美观性和用户友好性。 总结来说,使用Spring BootVue.js可以分别处理后端和前端的开发工作,通过API接口进行数据交互,从而构建一个功能齐全且有效的物业管理系统。这样的代码结构可以使开发人员更好地组织项目,并提高开发效率。当然,在实际开发过程中,还需要根据具体需求进行更详细的代码编写和功能实现。 ### 回答3: Spring BootVue.js是两个流行的开发框架和技术,可以结合使用来构建物业管理系统的代码。 首先,可以使用Spring Boot来构建后端代码。Spring Boot是一个快速开发的框架,提供了丰富的功能和良好的开发体验。可以使用Spring Boot来创建RESTful API接口,处理物业管理系统的各种业务逻辑。可以使用Spring Data JPA来处理与数据库的交互,包括数据的增删改查操作。还可以使用Spring Security来实现用户权限管理和身份认证。 同时,可以使用Vue.js来构建前端代码。Vue.js是一个轻量级的JavaScript框架,可用于构建交互式的用户界面。可以使用Vue.js来创建物业管理系统的用户界面,包括登录页面、主页、物业信息管理、费用管理、维修管理等模块。可以使用Vue Router来实现页面的路由跳转,使用Vuex来管理全局状态,使用Element UI或者Ant Design Vue组件库来提供丰富的UI组件。 在后端和前端之间,可以使用Spring Boot提供的RESTful API来实现数据的传递和交互。前端通过Vue.js发送HTTP请求到后端获取数据或者提交数据。后端接收到请求后,处理相应的业务逻辑,并返回相应的数据给前端。可以使用JSON格式来进行数据的传递。 总之,使用Spring BootVue.js可以构建一个功能完善的物业管理系统代码。后端使用Spring Boot处理业务逻辑和与数据库的交互,前端使用Vue.js构建用户界面。两者之间通过RESTful API来实现数据的传递和交互。这样可以实现系统的高效开发和良好的用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值