java 限制文件下载流量
来源:互联网 发布:左手定则洛伦兹力 知乎 编辑:程序博客网 时间:2024/04/30 10:31
package com.mvc.controller;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller("userController")
@RequestMapping("/user")
public class UserController {
private int count = 0;
@RequestMapping(value = "/add.do")
public String addUser() {
// TODO Auto-generated constructor stub
return "user/add_success";
}
@SuppressWarnings("static-access")
@RequestMapping(value = "/download.do")
@ResponseBody
/*
* byte[] bytes = new byte[10240];//每次读入的字节为10k
* outputStream.flush();//把缓存清空提交数据
* 即是一秒钟之内提交10k的数据
*/
public String download(HttpServletRequest request, HttpServletResponse response){
count++;
System.out.println("++++Thread :"+Thread.currentThread().getName());//打印线程名字,可以看到是不同的
System.out.println("++++count :"+count);
response.setContentType("application/x-download");
response.setHeader("Conten-Disposition", "attachment;filename="+"my.txt");
File file = new File("/home/tinmoo/chineseAN.txt");
InputStream inputStream = null;
ServletOutputStream outputStream = null;
try {
outputStream = response.getOutputStream();
inputStream = new FileInputStream(file);
byte[] bytes = new byte[512000];//第一次读入的字节为0.5MB
int length = -1;
while ((length = inputStream.read(bytes))!= -1 ) {
outputStream.write(bytes, 0, length);
/*
* 下面两句是必须的
*/
outputStream.flush();//把缓存清空提交数据
Thread.currentThread().sleep(999);//睡眠一秒中
bytes = new byte[900000/count];//根据请求人数控制流量
}
inputStream.close();
outputStream.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(count > 0){
count--;
}
return null;
}
}
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller("userController")
@RequestMapping("/user")
public class UserController {
private int count = 0;
@RequestMapping(value = "/add.do")
public String addUser() {
// TODO Auto-generated constructor stub
return "user/add_success";
}
@SuppressWarnings("static-access")
@RequestMapping(value = "/download.do")
@ResponseBody
/*
* byte[] bytes = new byte[10240];//每次读入的字节为10k
* outputStream.flush();//把缓存清空提交数据
* Thread.currentThread().sleep(1000);//睡眠一秒中
*这里的count没有用到同步锁,但是有点误差是很有效率的。
* 即是一秒钟之内提交10k的数据
*/
public String download(HttpServletRequest request, HttpServletResponse response){
count++;
System.out.println("++++Thread :"+Thread.currentThread().getName());//打印线程名字,可以看到是不同的
System.out.println("++++count :"+count);
response.setContentType("application/x-download");
response.setHeader("Conten-Disposition", "attachment;filename="+"my.txt");
File file = new File("/home/tinmoo/chineseAN.txt");
InputStream inputStream = null;
ServletOutputStream outputStream = null;
try {
outputStream = response.getOutputStream();
inputStream = new FileInputStream(file);
byte[] bytes = new byte[512000];//第一次读入的字节为0.5MB
int length = -1;
while ((length = inputStream.read(bytes))!= -1 ) {
outputStream.write(bytes, 0, length);
/*
* 下面两句是必须的
*/
outputStream.flush();//把缓存清空提交数据
Thread.currentThread().sleep(999);//睡眠一秒中
bytes = new byte[900000/count];//根据请求人数控制流量
}
inputStream.close();
outputStream.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(count > 0){
count--;
}
return null;
}
}
- java 限制文件下载流量
- 利用apache限制IP并发数和下载流量控制
- CentOS-TC(流量控制)-单IP上传(下载)限制
- 解除IIS文件下载限制
- Java服务端限制下载速度
- iptables 限制流量
- freeradius2 限制流量
- Pigeon中的流量限制
- 爬虫流量被限制
- 修改IIS6上传文件限制,下载附件大小限制
- 限制文件下载时上传速度
- php限制文件下载速度代码
- php限制文件下载速度的代码
- php实现限制文件下载速度
- 限制篇(5.4) 03. 控制下载和上传流量 ❀ 飞塔 (Fortinet) 防火墙
- 关于window apache 流量限制
- iptables限速 iptables限制流量
- apache限制ip与流量
- WorldWind编译问题汇总
- iOS的主要框架介绍
- 走台阶问题,整数的分解问题
- VS2010 C#调用C++ DLL文件(图文讲解)
- 【RMQ】超级钢琴
- java 限制文件下载流量
- JAVA 调用NetDraw((*^__^*) 嘻嘻……)
- Google地图现可按照路况给出出行时间
- c++ stl库 vector简单的实现
- is Qt installed correctly?
- 使用C# 向记事本窗口发送消息
- with 语句
- 四叉树 动态节点解决方案
- 求集合的所有子集(续)