java IO流实现文件上传案例

java IO流实现文件上传案例

HTML:

<div class="input-group">
<input type="file" name="FilePath" class="form-control">
<span class="input-group-addon" ng-click="selectFile()">上传</span>
</div>

JavaScript:

/**
* 上传
*此处js掺杂部分angular和jquery框架,需要引入相关组件,根据自己需求去改
*
 */
$scope.selectFile = function(){
   //H5文件对象

var formData = new FormData();
var file = document.getElementsByName('FilePath')[0].files[0];
if(!file){
alert("请选择需要上传的附件!!!");
return;
}
formData.append('file',file);
formData.append('name','zz');
$.ajax({
url : 'http://localhost:8080/fileUpload',
type : 'POST',
processData : false,
contentType : false,
data : formData
}).success(function(data){
$scope.findAllFile();
}).error(function(){

})
}

Java:
   @RequestMapping("/fileUpload")
  @ResponseBody
  public FileBean fileUpload(@RequestParam(value="file",required = true) MultipartFile file,
@RequestParam(value="name",required = true) String name,
HttpServletRequest request){

  
  FileBean fileBean = null;
  try{
  byte[] fileByte = file.getBytes();
  //获取文件的源文件名称
  String oldFileName = file.getOriginalFilename();
  //获取文件保存路径,此处可配置化,而不是写死,暂时写死
  String filePath = "D://upload//";

  //时间戳生成新的文件名,防止因同名文件被覆盖
  Date date = new Date();
  String newFileName = String.valueOf(date.getTime());

  //上传时间(系统当前时间)
  String uploadTime = DateUtils.DateParseString(date);

  //文件后缀名
  String suffixName = oldFileName.substring(oldFileName.lastIndexOf("."));

  //组合生成新的文件名
  newFileName = newFileName + suffixName;
   //文件上传
  boolean flag = FileUtils.uploadFile(fileByte,filePath,newFileName);
//文件上传成功之后,文件相关信息入库操作
  if(flag){
  fileBean = new FileBean(newFileName,"夏炳成",uploadTime,filePath,oldFileName);
       //这里是文件数据入库操作,根据自己需求自己更改
  addFile(fileBean);
  }
    }catch(IOException ioException){
    fileBean = new FileBean();
    }
    return fileBean;
  }
 
FileUtils工具类:
  public static boolean uploadFile(byte[] file,String filePath,String fileName){
    //默认文件上传成功
  boolean flag = true;
    //new一个文件对象实例
  File targetFile = new File(filePath);
    //如果当前文件目录不存在就自动创建该文件或者目录
  if(!targetFile.exists()){
  targetFile.mkdirs();
  }

  try{
       //通过文件流实现文件上传
  FileOutputStream fileOutputStream = new FileOutputStream(filePath + fileName);
  fileOutputStream.write(file);
  fileOutputStream.flush();
  fileOutputStream.close();
  }catch(FileNotFoundException e){
  System.out.println("文件不存在异常");
  flag = false;
  }catch(IOException ioException){
  System.out.println("javaIO流异常");
  flag = false;
  }
  return flag;
  }
 
 
 

猜你喜欢

转载自www.cnblogs.com/WoKeXiaobing/p/9688322.html
今日推荐