由於文件名可能重複,能夠使用一些文件的命名規則,這裏用的是UUID的生成方式:安全
1 //生成文件名UUID,使文件名不會重複 2 String uuid = UUID.randomUUID().toString(); 3 //得到原始文件的後綴名 4 String suffix = originalFilename.substring(originalFilename.lastIndexOf("."));
文件上傳以後,若是上傳的目錄是項目根目錄下的話,外部是能夠訪問的,這樣會很不安全,因此推薦放在/WEB-INF文件夾下面:dom
1 //設置要上傳的目錄,若是是隱私的文件能夠放在WEB-INF下來提升安全性 2 String uploadPath = request.getSession().getServletContext().getRealPath("/WEB-INF/upload"); 3 //建立文件對象 4 File file = new File(uploadPath,uuid+suffix);//參數:文件目錄,文件名 5 //把文件寫入硬盤 6 fi.write(file);