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;
  }
相關文章
相關標籤/搜索