資料夾上傳(JavaScript及Java)
阿新 • • 發佈:2019-02-07
@Service("sysFilesUploadService")
public class SysFilesUploadServiceImpl implements SysFilesUploadService {
//檔案儲存地址
@Value("${file_storage_address}")
private String Storage_PATH;
@Value("${file_format_require}")
private String File_Format;
@Override
public String upload(List<MultipartFile> files) {
BufferedOutputStream bos =null;
BufferedInputStream bis=null;
//檔案格式要求
String[] suffixArr = File_Format.split(",");
List<String> suffixList = Arrays.asList(suffixArr);
//判斷儲存的資料夾是否存在
File file=new File(Storage_PATH);
if(!file.exists()) {
file.mkdirs();
}
try {
//遍歷資料夾
for (MultipartFile mf : files) {
if(!mf.isEmpty()) {
String originalFilename = mf.getOriginalFilename();
String suffix = originalFilename.substring(originalFilename.lastIndexOf(".")+1);
//格式限制,非wav格式的不上傳
if(!suffixList.contains(suffix)) {
continue;
}
String fileName=originalFilename.substring(originalFilename.lastIndexOf("/")+1);
//為避免檔案同名覆蓋,給檔名加上時間戳
int index = fileName.lastIndexOf(".");
String firstName=fileName.substring(0, index);
String lastName=fileName.substring(index);
fileName=firstName+"_"+System.currentTimeMillis()+lastName;
//讀取檔案
bis=new BufferedInputStream (mf.getInputStream());
//指定儲存的路徑
bos=new BufferedOutputStream(new FileOutputStream
(Storage_PATH+fileName));
int len=0;
byte[] buffer=new byte[10240];
while((len=bis.read(buffer))!=-1){
bos.write(buffer, 0, len);
}
//重新整理此緩衝的輸出流,保證資料全部都能寫出
bos.flush();
}
}
if(bis!=null) {
bis.close();
}
if(bos!=null) {
bos.close();
}
return "ok";
} catch (FileNotFoundException e) {
e.printStackTrace();
return "error";
} catch (IOException e) {
e.printStackTrace();
return "error";
}
}
}
public class SysFilesUploadServiceImpl implements SysFilesUploadService {
//檔案儲存地址
@Value("${file_storage_address}")
private String Storage_PATH;
@Value("${file_format_require}")
private String File_Format;
@Override
public String upload(List<MultipartFile> files) {
BufferedOutputStream bos =null;
BufferedInputStream bis=null;
//檔案格式要求
String[] suffixArr = File_Format.split(",");
List<String> suffixList = Arrays.asList(suffixArr);
//判斷儲存的資料夾是否存在
File file=new File(Storage_PATH);
if(!file.exists()) {
file.mkdirs();
}
try {
//遍歷資料夾
for (MultipartFile mf : files) {
if(!mf.isEmpty()) {
String originalFilename = mf.getOriginalFilename();
String suffix = originalFilename.substring(originalFilename.lastIndexOf(".")+1);
//格式限制,非wav格式的不上傳
if(!suffixList.contains(suffix)) {
continue;
}
String fileName=originalFilename.substring(originalFilename.lastIndexOf("/")+1);
//為避免檔案同名覆蓋,給檔名加上時間戳
int index = fileName.lastIndexOf(".");
String firstName=fileName.substring(0, index);
String lastName=fileName.substring(index);
fileName=firstName+"_"+System.currentTimeMillis()+lastName;
//讀取檔案
bis=new BufferedInputStream (mf.getInputStream());
//指定儲存的路徑
bos=new BufferedOutputStream(new FileOutputStream
(Storage_PATH+fileName));
int len=0;
byte[] buffer=new byte[10240];
while((len=bis.read(buffer))!=-1){
bos.write(buffer, 0, len);
}
//重新整理此緩衝的輸出流,保證資料全部都能寫出
bos.flush();
}
}
if(bis!=null) {
bis.close();
}
if(bos!=null) {
bos.close();
}
return "ok";
} catch (FileNotFoundException e) {
e.printStackTrace();
return "error";
} catch (IOException e) {
e.printStackTrace();
return "error";
}
}
}