現(xiàn)在國內(nèi)最先進的防止視頻被下載的技術(shù)不是java,因為就算你調(diào)用java代碼,嗅探器照樣可以嗅探到視頻地址??梢越梃b國外先進的技術(shù),就是用adobe的f4fpackager工具,將MP4等流媒體視頻文件打碎成f4m文件或者f4f格式文件,那樣嗅探器就嗅探不了視頻流了。
公司主營業(yè)務:網(wǎng)站設計制作、網(wǎng)站建設、移動網(wǎng)站開發(fā)等業(yè)務。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)推出平橋免費做網(wǎng)站回饋大家。
和線程有什么關(guān)系??
for (int j = 0; j 500 ; j++) {
response.getWriter().write("aaaaa");//線程可能在這里停止,停止位置看我輸出的數(shù)據(jù)大小
}
這段代碼應該改進一下,你在循環(huán)中應該拼寫字符串,用StringBuffer,然后用response.getWriter().write()一次就給輸出出來,你這樣效率低下啊。
理論上應該是能走到后面的啊,為什么會在中間停止啊?你先按我說的改。
import java.io.File;
/**
* 刪除文件和目錄
*
*/
public class DeleteFileUtil {
/**
* 刪除文件,可以是文件或文件夾
*
* @param fileName
* 要刪除的文件名
* @return 刪除成功返回true,否則返回false
*/
public static boolean delete(String fileName) {
File file = new File(fileName);
if (!file.exists()) {
System.out.println("刪除文件失敗:" + fileName + "不存在!");
return false;
} else {
if (file.isFile())
return deleteFile(fileName);
else
return deleteDirectory(fileName);
}
}
/**
* 刪除單個文件
*
* @param fileName
* 要刪除的文件的文件名
* @return 單個文件刪除成功返回true,否則返回false
*/
public static boolean deleteFile(String fileName) {
File file = new File(fileName);
// 如果文件路徑所對應的文件存在,并且是一個文件,則直接刪除
if (file.exists() file.isFile()) {
if (file.delete()) {
System.out.println("刪除單個文件" + fileName + "成功!");
return true;
} else {
System.out.println("刪除單個文件" + fileName + "失??!");
return false;
}
} else {
System.out.println("刪除單個文件失?。? + fileName + "不存在!");
return false;
}
}
/**
* 刪除目錄及目錄下的文件
*
* @param dir
* 要刪除的目錄的文件路徑
* @return 目錄刪除成功返回true,否則返回false
*/
public static boolean deleteDirectory(String dir) {
// 如果dir不以文件分隔符結(jié)尾,自動添加文件分隔符
if (!dir.endsWith(File.separator))
dir = dir + File.separator;
File dirFile = new File(dir);
// 如果dir對應的文件不存在,或者不是一個目錄,則退出
if ((!dirFile.exists()) || (!dirFile.isDirectory())) {
System.out.println("刪除目錄失?。? + dir + "不存在!");
return false;
}
boolean flag = true;
// 刪除文件夾中的所有文件包括子目錄
File[] files = dirFile.listFiles();
for (int i = 0; i files.length; i++) {
// 刪除子文件
if (files[i].isFile()) {
flag = DeleteFileUtil.deleteFile(files[i].getAbsolutePath());
if (!flag)
break;
}
// 刪除子目錄
else if (files[i].isDirectory()) {
flag = DeleteFileUtil.deleteDirectory(files[i]
.getAbsolutePath());
if (!flag)
break;
}
}
if (!flag) {
System.out.println("刪除目錄失?。?);
return false;
}
// 刪除當前目錄
if (dirFile.delete()) {
System.out.println("刪除目錄" + dir + "成功!");
return true;
} else {
return false;
}
}
public static void main(String[] args) {
// // 刪除單個文件
// String file = "c:/test/test.txt";
// DeleteFileUtil.deleteFile(file);
// System.out.println();
// 刪除一個目錄
String dir = "D:/home/web/upload/upload/files";
DeleteFileUtil.deleteDirectory(dir);
// System.out.println();
// // 刪除文件
// dir = "c:/test/test0";
// DeleteFileUtil.delete(dir);
}
}
點擊下載調(diào)用的是瀏覽器的下載功能,你沒法去調(diào)用瀏覽器的取消下載功能,只能自己手動去取消!
需要異常信息
-------------------------
有人這么說過
ClientAbortException: JAVA.NET.SocketException: Connection reset by peer: socket wrITe error的原因是由于處理http連接時,正在輸出內(nèi)容時,用戶關(guān)閉了IE,會出現(xiàn)一個"ClientAbortException",屬于I/O處理 中出現(xiàn)的一個異常,應用服務器應該會捕捉。
Connection reset by peer的原因:
經(jīng)常出現(xiàn)的Connection reset by peer: 原因可能是多方面的,不過更常見的原因是:
①:服務器的并發(fā)連接數(shù)超過了其承載量,服務器會將其中一些連接Down掉;
②:客戶關(guān)掉了瀏覽器,而服務器還在給客戶端發(fā)送數(shù)據(jù);
③:瀏覽器端按了Stop
----------------------
你的問題里描述“這個循環(huán)下執(zhí)行到第48次,也就是48KB的時候就出問題了,默認取消下載”
默認取消下載是什么意思?怎么取消的?
是不是符合上面的情況呢?