栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

springboot实现文件上传步骤解析

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

springboot实现文件上传步骤解析

这篇文章主要介绍了springboot实现文件上传步骤解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

第一步编写上传的前段页面


  

 


  
    
      
 
 

第二步写对应的js页面


(function (angular) {
  'use strict';
  angular.module('Lujing').controller('historyStorageCtrl', ['$scope', '$http', 'ToastService', '$compile', '$timeout', 'HttpService','$filter',
  function ($scope, $http, ToastService, $compile, $timeout, HttpService,$filter) {
    $scope.fileInvalid = false;

    var $fileInput = initFileInput("importFile", '/server/search/upload');

    
    function initFileInput(ctrlName, uploadUrl) {
      var control = $('#' + ctrlName);
      control.fileinput({
 language: 'zh',
 uploadUrl: uploadUrl, //上传的地址
 allowedFileExtensions: ['doc', 'docx', 'xls', 'xlsx', 'ppt', 'pptx', 'pdf', 'mp4', 'avi','wmv','asf','asx','rm','rmvb','3gp','mov','m4v','dat','mkv','flv','vob'],
 showUpload: true, //是否显示上传按钮
 showCaption: true, //是否显示标题
 showPreview: false, //是否显示预览区域
 browseClass: "btn btn-primary", //按钮样式
 previewFileIcon: "",
      }).on('fileuploaderror', fileuploaderror).on("fileuploaded", function (event, data, previewId, index) {
 // console.log(data);.on('fileselect', fileselect)
 $scope.$apply(function () {
   $scope.fileId = data.response.fileId; // 未执行
   $scope.document.fileName = data.files[0].name;
 });

      }).on("filecleared", function (event, data, msg) {
 $scope.$apply(function () {
   $scope.fileInvalid = false;
 });
      });
      return control;
    }

    
    function importClearFunc() {
      if ($fileInput)
 $fileInput.fileinput('clear');
      $scope.fileInvalid = false;
    }

    

    
    function fileuploaderror(event, data, msg) {
      $scope.fileInvalid = true;
      $scope.$apply();
      $('.modal-body .kv-upload-progress').css('display', 'none');
      if (!(data.jqXHR.responseJSON)) { //文件类型验证错误
 $('#fileError').html(msg);
      } else { //上传错误
 console.log(data);
 var statusCode = data.jqXHR.responseJSON.message;
 var errorMsg = HTTP_ERROR_MAP['' + statusCode];
 $('#fileError').html(errorMsg);
      }
    }

    
    
    $scope.openAddModal = function () {
      $scope.document = {};
      $scope.document.classificationId = 1;
      $scope.document.starGrade = 5;
      $timeout(importClearFunc);
      // openModeldialog();
    };
  

    
    function formVlidate() {
      if (!$scope.document.introduction) {
 return false;
      }
      if (!$scope.document.keyPackage) {
 return false;
      }
      return true;
    }

    
    $scope.submitFileInfo = function () {
      if (!$scope.fileId) {
 // ToastService.alert("提示", "先上传文件,再提交表单", "info");
 console.error("先上传文件,再提交表单");
 return;
      }
      if (!formVlidate()) {
 // ToastService.alert("提示", "请填充表单", "info");
 console.error("请填充表单");
 return;
      } 
      $scope.params = {
 'introduction': $scope.document.introduction,//简介
 'keyPackage': $scope.document.keyPackage,//可能查询的关键字
 'starGrade': $scope.document.starGrade,//星级
 'classificationId': $scope.document.classificationId,//文件的id
 'filePath': $scope.fileId,//文件的路径
 'docName': $scope.document.fileName,//文件的名字
 'author':$scope.document.author,
 'unit':$scope.document.unit,
 'writeDate':$scope.document.writeDate?$scope.document.writeDate.format("yyyy-MM-dd hh:mm:ss"):$scope.document.writeDate,
 'jh': $scope.document.jh,
 'id': $scope.document.id
      };
      HttpService.post("/server/search/submit", $scope.params).then(function (data) {
 $('#documentOprModal').modal('hide');
 // $("#contTable").bootstrapTable('refresh');
 console.error("提交文件信息成功");
      }, function (response) {
 // ToastService.alert("提示", "提交文件信息出错", "warning");
 console.error("提交文件信息出错");
      });
    }


    
  }
])
})(angular);

第三部编写后台上传文件和提交表单的代码

package com.shiwen.yitihui.server.controller;

import java.io.File;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import com.shiwen.yitihui.common.Snowflake;
import com.shiwen.yitihui.domain.DocClassification;
import com.shiwen.yitihui.domain.DocType;
import com.shiwen.yitihui.domain.documentFile;
import com.shiwen.yitihui.domain.FileEntity;
import com.shiwen.yitihui.server.service.documentFileService;


@RestController
@RequestMapping("/search")
public class UploadFileController {
	
	@Autowired
	private documentFileService dfservice;
	
	private String uploadPath="E://file";
	
	
	@PostMapping("/upload")
	public Map uploadFile(MultipartFile file){
		Map map = new HashMap();
		try {
      //文件的对象
			FileEntity fEntity = new FileEntity();
			String uuid = UUID.randomUUID().toString();
			//文件的id
			fEntity.setId(uuid.replaceAll("-", ""));//String.valueOf(Snowflake.getNextKey()));
			//文件的名字
			fEntity.setFileName(file.getOriginalFilename());
			//上传文件的时间
			fEntity.setUploadTime(new Date());
			//上传者
			fEntity.setUploadBy("admin");
			//文件的后缀
			String suffix = fEntity.getFileName().substring(fEntity.getFileName().indexOf("."));
			//文件存放的完整路径
			fEntity.setFinePathName(uploadPath + File.separator + fEntity.getId() + suffix);
			//文件的类型
			fEntity.setDocType(new DocType());
			//设置文件的类型
			fEntity.getDocType().setId(getDocTypeId(fEntity.getFileName()));
			//创建文件的对象
			File newFile = new File(fEntity.getFinePathName());
			//上传文件
			file.transferTo(newFile);
			map.put("result", "success");
			map.put("fileId", fEntity.getId());
		}catch(Exception e) {
//			e.printStackTrace();
			map.put("result", "fail");
		}
		return map;
		
	}
	
	
	@PostMapping("/submit")
	public Map submitFileInfo(@RequestBody documentFile df) {
		Map map = new HashMap();
		try {
			if (df.getId() == null || df.getId().isEmpty() || df.getId() == "") {
				df.setId(String.valueOf(Snowflake.getNextKey()));
			}
			String suffix = df.getDocName().substring(df.getDocName().indexOf("."));
			df.setFilePath(uploadPath + File.separator + df.getFilePath() + suffix);
			df.setUploadBy("admin");// 用户名称 df.setUploadTime(new java.util.Date());
			df.setUploadTime(new Date());
			df.setDownloadNumber(0L);
			df.setHeat(0L);
			df.setRelated(20);
			df.setDocType(new DocType());
			df.getDocType().setId(getDocTypeId(suffix));
			df.setClassification(new DocClassification());
			df.getClassification().setId(df.getClassificationId());
			dfservice.save(df);
			map.put("result", "success");
		} catch (Exception e) {
			//e.printStackTrace();
		  map.put("result", "fail");
		}
		return map;
	}
	
	
	
	private Integer getDocTypeId(String fileName) {
		if (fileName.contains(".doc")) {
			return 1;
		} else if (fileName.contains(".xls")) {
			return 2;
		} else if (fileName.contains(".pdf")) {
			return 3;
		} else if (fileName.contains(".ppt")) {
			return 4;
		}else {
			return 5;
		}
	}
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持考高分网。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/135775.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号