
文件下载Controller
@RequestMapping("/fileDownLoad")
public ResponseEntity<byte[]> fileDownLoad(HttpServletRequest request) throws Exception{
String downloadFilePath="D:\\Data\\Download";//从我们的上传文件夹中去取
String filename = "SocketClient-Android-Of-Final-Assignment.apk";
File file = new File(downloadFilePath+File.separator+filename);//新建一个文件
HttpHeaders headers = new HttpHeaders();//http头信息
String downloadFileName = new String(filename.getBytes("UTF-8"),"iso-8859-1");//设置编码
headers.setContentDispositionFormData("attachment", downloadFileName);
headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
//MediaType:互联网媒介类型 contentType:具体请求中的媒体类型信息
return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file),headers,HttpStatus.CREATED);
}
文件夹内容监听和文件上传
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.UUID;
import java.util.concurrent.TimeUnit;
import org.apache.commons.io.monitor.FileAlterationListener;
import org.apache.commons.io.monitor.FileAlterationMonitor;
import org.apache.commons.io.monitor.FileAlterationObserver;
// 轮询间隔 5 秒
long interval = TimeUnit.SECONDS.toMillis(5);
// 创建一个文件观察器用于处理文件的格式
FileAlterationObserver observer = new FileAlterationObserver(directory, FileFilterUtils.and(
FileFilterUtils.fileFileFilter(),FileFilterUtils.suffixFileFilter(".txt")));
//设置文件变化监听器
observer.addListener(new MyFileListener());
FileAlterationMonitor monitor = new FileAlterationMonitor(interval,observer);
monitor.start();
final class MyFileListener implements FileAlterationListener{
public void onDirectoryChange(File arg0) {
}
public void onDirectoryCreate(File arg0) {
public void onDirectoryDelete(File arg0) {
}
public void onFileChange(File arg0) {
}
public void onFileCreate(File arg0) {
System.out.println(arg1);
InputStream in = null;
OutputStream out = null;
try {
String srcPath = arg0.toString();
File parentDir = new File("\\\\192.168.1.104\\test");
File targetPath = new File(parentDir, srcPath.substring(srcPath.lastIndexOf("\\")));
in = new FileInputStream(srcPath);
out = new FileOutputStream(targetPath);
byte[] bs = new byte[1024];
int len = -1;
while((len = in.read(bs)) != -1) {
out.write(bs, 0, len);
}}catch(Exception e){
e.printStackTrace();
}
finally {
try {
out.close();
} catch (Exception e) {
e.printStackTrace();
}
try {
in.close();
} catch (Exception e) {
e.printStackTrace();
}
}
System.out.println("上传成功!!");
System.out.println("文件创建成功!!!");
}
public void onFileDelete(File arg0) {
}
public void onStart(FileAlterationObserver arg0) {
}
public void onStop(FileAlterationObserver arg0) {
}
}