vue+springboot前后端分离上传单个文件

vue+springboot前后端分离上传单个文件

vue上传单个文件

第一步:前端页面

//点击按钮,出现弹框
<el-button type="primary" round @click="visible=true">添加文件</el-button>
//弹框
<el-dialog :visible.sync="visible">
     <el-form>
        <el-form-item label="文件" prop="file">
          <el-input v-model="fileName" :disabled="true"></el-input><br>
          <el-upload class="upload-demo" ref="upload" action="doUpload" :limit="1" :before-upload="beforeUpload">
          <el-button slot="trigger" size="small" type="primary">选取文件</el-button>
          <div slot="tip" class="el-upload__tip">只能上传excel文件,且不超过5MB</div>
          </el-upload> 
            
         <el-button @click="visible = false">取消</el-button>
         <el-button type="primary" @click="submitUpload()">确定</el-button>        
         </el-form-item> 
         </el-form>
</el-dialog>

第二部:js代码:

//要在data中定义fileName和visible,这里不贴出data,只给出两个方法
//检查文件格式大小等
beforeUpload(file){
      debugger
      console.log(file,'文件');
      this.files = file;
      const extension = file.name.split('.')[1] === 'xls'
      const extension2 = file.name.split('.')[1] === 'xlsx'
      const isLt2M = file.size / 1024 / 1024 < 5
      if (!extension && !extension2) {
        this.$message.warning('上传模板只能是 xls、xlsx格式!')
        return
      }
      if (!isLt2M) {
        this.$message.warning('上传模板大小不能超过 5MB!')
        return
      }
      this.fileName = file.name;
      return false // 返回false不会自动上传
    },
    //上传文件方法
    //注意,url中的api是我设置的代理,如:
      //proxyTable: {
      //'/api': {
      //  target: 'http://192.168.100.223:8090',
      // changeOrigin: true,
      // pathRewrite: {
      //   '^/api': '' 
      // }
      // }
      // },
    submitUpload() {
      debugger
      console.log('上传'+this.files.name)
      if(this.fileName == ""){
        this.$message.warning('请选择要上传的文件!')
        return false
      }
      let fileFormData = new FormData();
      fileFormData.append('file', this.files, this.fileName);//filename是键,file是值,就是要传的文件,test.zip是要传的文件名
      let requestConfig = {
        headers: {
          'Content-Type': 'multipart/form-data'
        },
      }
      this.$http.post(`/api/paas/upload`, fileFormData, requestConfig).then((res) => {
        debugger
        if (res && res.code === 0) {
          this.$message({
            message: '操作成功',
            type: 'success',
            duration: 1500,
            onClose: () => {
              this.visible = false
            }
          })
        } else {
          this.$message.error(res.msg)
        }
      }) 
    }

第三步: 后台

	@RequestMapping(value = "/upload")
	public Result upload(@RequestParam("file") MultipartFile file) {
		Result result = new Result();
		result.setCode(200);
		if (file != null) {
			try {
				String fileRealName = file.getOriginalFilename();// 获得原始文件名;
				String filePath = "F:\\F";
				File savedFile = new File(filePath);
				if (!savedFile.exists()) {
					savedFile.mkdirs();
				}
				savedFile = new File(filePath, fileRealName);
				boolean isCreateSuccess = savedFile.createNewFile();
				if (isCreateSuccess) { // 转存文件
					file.transferTo(savedFile); // 第一种
					//FileUtils.copyInputStreamToFile(file.getInputStream(),savedFile); // 第二种
				}
			} catch (Exception e) {
				e.printStackTrace();
			}
		} else {
			result.setCode(500);
			result.setMessage("文件为空!");
		}
		// 上传文件 相关逻辑
		return result;
	}

结语

以上方法可以实现单个文件的上传,文件夹的上传,下篇博文更新。
如果有帮助到你,我很开心。

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: vue springboot前后端分离开发实战pdf是一本介绍如何使用Vue和Spring Boot进行前后端分离开发的实战指南。本书详细讲解了如何使用Vue框架搭建前端应用,以及如何利用Spring Boot框架构建后端应用,旨在帮助读者掌握前后端分离开发的技术和方法。 在这本书中,作者首先介绍了前后端分离开发的概念和背景,解释了为什么前后端分离可以带来更好的开发体验和效率。接着,作者详细介绍了Vue框架的基本概念和使用方法,包括组件化开发、路由管理、状态管理等方面的内容。读者可以通过跟随书中的示例代码,逐步学习并实践Vue框架的应用。 在后半部分,作者重点介绍了Spring Boot框架的使用。读者将学习如何使用Spring Boot快速搭建后端应用,并了解如何通过RESTful API与前端应用进行数据交互。此外,作者还介绍了Spring Security、Spring Data JPA等常用的配套技术,帮助读者构建安全可靠的后端应用。 本书不仅提供了理论知识,还提供了大量的实战案例和实例代码。读者可以跟随书中的示例项目逐步实践,从而更好地掌握Vue和Spring Boot的开发技巧。此外,本书还涉及了一些项目管理和部署的内容,帮助读者了解如何将前后端分离的应用部署到生产环境中。 总而言之,vue springboot前后端分离开发实战pdf是一本适合想要学习并实践前后端分离开发的开发人员的实用指南,通过学习本书,读者将获得丰富的知识和经验,能够独立设计和开发前后端分离的应用程序。 ### 回答2: 《Vue SpringBoot前后端分离开发实战PDF》这本书是一本关于前后端分离开发实践的指南。它结合了VueSpringBoot两个流行的开发框架,帮助开发者更好地理解和应用这两个技术。 在书中,作者首先介绍了前后端分离的概念和优势。前后端分离开发可以提高开发效率和协作性,同时也能提供更好的性能和扩展性。然后,作者详细介绍了Vue框架的基本知识和使用方法,包括Vue的搭建、组件的创建和组织等。读者可以通过实际的案例来学习和练习。 接着,作者转向SpringBoot框架的介绍和使用。SpringBoot是一个轻量级的Java开发框架,可以快速构建和部署应用程序。作者讲解了如何使用SpringBoot创建RESTful API,以及如何与Vue前端进行交互。 在书的后半部分,作者提供了一些实战案例和示例代码。这些案例涵盖了常见的前后端分离开发场景,如用户管理、权限控制、数据交互等。通过这些案例,读者可以了解到如何将VueSpringBoot无缝地结合起来,构建强大的应用程序。 总的来说,《Vue SpringBoot前后端分离开发实战PDF》是一本非常实用的书籍。它不仅系统地介绍了VueSpringBoot的基础知识和使用方法,还提供了丰富的实战经验和案例。对于想要掌握前后端分离开发技术的开发者来说,这本书是一个很好的学习资源。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值