1. 程式人生 > >io流的上傳檔案

io流的上傳檔案

前臺

<input type="file" name="signName" id="signName" value="" ">

java後臺

MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest)request;

MultipartFile signName= (MultipartFile)multiRequest.getFile("signName") ;

String picurl=file(signName,request);

public String file(MultipartFile files,HttpServletRequest request){

String htwbFileName= files.getOriginalFilename();
SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMdd");
Date date=new Date();
String time=sdf.format(date);
FileOutputStream fos = null;
FileInputStream fis = null;
String picurl="";
try {
String path=request.getSession().getServletContext().getRealPath("upload/");//項目錄部署路徑
String createpath = time;
//判斷檔案是否存在若不存在建立檔案
File file=new File(path+"/"+createpath);  
if(!file.exists())    
{    
    file.mkdirs();    
}  
String type = htwbFileName.substring(htwbFileName.lastIndexOf(".") + 1, htwbFileName.length());//圖片格式
String picName=UUID.randomUUID().toString().replace("-", "")+"."+type;//圖片名稱
picurl = createpath +"/"+ picName;
fos = new FileOutputStream(path +"/"+ createpath + "/" + picName);
fis = (FileInputStream) files.getInputStream();
byte[] buffer = new byte[1024];
int len = 0;
while ((len = fis.read(buffer)) != -1) {
fos.write(buffer, 0, len);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
close(fos, fis);
}
return picurl; 
}

private void close(FileOutputStream fos, FileInputStream fis) {
if (fis != null) {
try {
fis.close();
fis = null;
} catch (Exception e) {
System.out.println("FileInputStream關閉失敗");
e.printStackTrace();
}
}
if (fos != null) {
try {
fos.close();
fis = null;
} catch (Exception e) {
System.out.println("FileOutputStream關閉失敗");
e.printStackTrace();
}
}
}