上傳壓縮包java
Ⅰ 今天上傳一個java代碼的rar壓縮文件,提示「文件存在安全風險,已取消上傳」,檢測沒病毒,如何處理
你好,說明文件真的存在風險,上傳都預掃描的,對文件進行格式壓縮 ,或者你的群違規被舉報
你可以用壓縮下,然後再上傳。可能後綴是有影響的。群是否被封禁等QQ群不能上傳文件的解決方法吧。具體內容如下:一:QQ沒有升級QQ軟體經過一段時間會有新的版本發布出來,新的版本中一般會有新的功能,老版本可能因為功能限制而QQ群不能上傳文件。那麼我們可以吧QQ更新到當前最新版本可以解決當前問題。二:軟體內部沖突如果更新到最新版QQ還不能解決問題的話就用下面方法,首先備份重要的QQ聊天記錄,再推出QQ軟體。在找到QQ安裝目錄,在安裝目錄中找到以你QQ號碼命名的文件夾,刪除此文件夾,在從新登陸QQ。三:QQ群共享如果還不能解決問題可能是群共享的問題了,在QQ群界面點擊「群社區」圖標,通過網頁找到QQ群共享,然後就能解決那麼QQ群不能上傳文件為問題了,四:系統問題重啟電腦後如果還不行可能是系統出現問題了,還原系統或者從新安裝系統即可。這就是小編對那麼QQ群不能上傳文件怎麼辦的解決方法,希望對你有所幫助。
騰訊電腦管家企業平台:http://..com/c/guanjia/
Ⅱ java伺服器如何對zip文件分包上傳
這個你是用什麼客戶端上傳呢?
java寫的客戶端和H5頁面都可以做這個操作,思路都是一樣的。
把文件切割再上傳,後台接受結束後再把文件合並。
在DB里做個記錄就是斷點續傳了嘛。
給點代碼提示:
js:
每次上傳2M,必須是支持H5的瀏覽器才行,兼容的問題需要注意!
functioncalculate(file,callBack){
varfileReader=newFileReader(),
blobSlice=File.prototype.mozSlice||File.prototype.webkitSlice||File.prototype.slice,
chunkSize=2097152,
//readinchunksof2MB
chunks=Math.ceil(file.size/chunkSize),
currentChunk=0,
spark=newSparkMD5();
fileReader.onload=function(e){
spark.appendBinary(e.target.result);//appendbinarystring
currentChunk++;
if(currentChunk<chunks){
loadNext();
}
else{
callBack(spark.end());
}
};
functionloadNext(){
varstart=currentChunk*chunkSize,
end=start+chunkSize>=file.size?file.size:start+chunkSize;
fileReader.readAsBinaryString(blobSlice.call(file,start,end));
};
loadNext();
}
java代碼沒什麼注釋,也不是全部的代碼看個大概意思,理解一下吧
根據文件的MD5碼來判斷每次上傳的文件是不是上傳過的。
如果是就找到上次的點告訴前台從哪開始上傳。
Messagemessage=newMessage();
PrintWriterout=response.getWriter();
=newServiceBreakpointUpload();
BreakpointShardshard=newBreakpointShard();
StringcurrentShardIndex="";
StringtotalShard="";
StringfileMD5="";
StringfileName="";
StringfileType="other";
try{
fileMD5=request.getParameter("fileMD5");
Partpart=request.getPart("fileData");
currentShardIndex=request.getParameter("currentShardIndex");
totalShard=request.getParameter("totalShard");
fileName=request.getParameter("fileName");
fileName=newString(fileName.getBytes("iso-8859-1"),"UTF-8");
fileType=request.getParameter("fileType");
StringtypeFolderName=service.getTypeFolder(fileType);
StringfolderPath=getServletContext().getRealPath("/upload/")+typeFolderName+File.separator;
Stringpath=folderPath+fileName+"-"+fileMD5+"-"+currentShardIndex;
System.out.println("fileName:"+fileName);
//是否初次上傳
if(!service.isUpload(fileMD5,fileType)){
BreakpointFilebreakpointFile=newBreakpointFile();
breakpointFile.setMd5(fileMD5);
breakpointFile.setFile_name(fileName);
breakpointFile.setTotal_shard(totalShard);
breakpointFile.setCurrent_shard_index(currentShardIndex);
breakpointFile.setFile_type(fileType);
breakpointFile.setPath(folderPath);
service.saveFile(breakpointFile);
}else{//返回上次完成位置
service.updateFile(fileMD5,currentShardIndex,fileType);
System.out.println("uploadshard"+currentShardIndex+"OK");
}
shard.setMd5(fileMD5);
shard.setShard_index(currentShardIndex);
shard.setPath(path);
service.saveShardFile(shard);
part.write(path);
if(currentShardIndex.equals(totalShard)){//上傳完成
System.out.println("");
service.mergeFiles(fileMD5,fileType);
System.out.println("mergeshardOK");
message.setData("completed");
}
message.setData(currentShardIndex);
out.println(JSONObject.fromObject(message).toString());
}catch(Exceptione){
e.printStackTrace();
message.setHasError(true);
message.setErrorMessage("錯誤!");
out.println(JSONObject.fromObject(message).toString());
}
}
Ⅲ java,web項目我想上傳一個rar壓縮文件,裡面有個excel和圖片。
解壓縮這一步不說了,前面有人說過了。
你要找不同文件的時候,如果文件比較少,像你說的只有兩個文件,你就按擴展名去判斷匹配就可以了。excel找xls,圖片找jpg或者png。
如果文件比較多的時候,你可以隨rar包上傳一個properties文件或者xml文件,在裡面配一下各個文件的文件名以便解析使用。
Ⅳ Java上傳pdf文件,只壓縮大小,不改變成.zip/.rar文件
Java上傳pdf文件,只壓縮大小,不改變成.zip/.rar文件
可以,壓縮只是一種演算法,什麼語言都可以,比如某種格式的文件中1001010(二進制)代表漢子的"中"字,那麼壓縮演算法就是在編碼不沖突的情況下可以改變編碼長度,比如壓縮之後中字變成1010,這樣就節省空間了,這是我隨便舉的例子,具體的對應演算法可以網上查
Ⅳ 如何用java讀取客戶端上傳的rar文件
直接通過工具類進行解壓或者壓縮文件即可。
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.Closeable;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Enumeration;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
/**
*
* @author gdb
*/
public class ZipUtilAll {
public static final int DEFAULT_BUFSIZE = 1024 * 16;
/**
* 解壓Zip文件
*
* @param srcZipFile
* @param destDir
* @throws IOException
*/
public static void unZip(File srcZipFile, String destDir) throws IOException
{
ZipFile zipFile = new ZipFile(srcZipFile);
unZip(zipFile, destDir);
}
/**
* 解壓Zip文件
*
* @param srcZipFile
* @param destDir
* @throws IOException
*/
public static void unZip(String srcZipFile, String destDir) throws IOException
{
ZipFile zipFile = new ZipFile(srcZipFile);
unZip(zipFile, destDir);
}
/**
* 解壓Zip文件
*
* @param zipFile
* @param destDir
* @throws IOException
*/
public static void unZip(ZipFile zipFile, String destDir) throws IOException
{
Enumeration<? extends ZipEntry> entryEnum = zipFile.entries();
ZipEntry entry = null;
while (entryEnum.hasMoreElements()) {
entry = entryEnum.nextElement();
File destFile = new File(destDir + entry.getName());
if (entry.isDirectory()) {
destFile.mkdirs();
}
else {
destFile.getParentFile().mkdirs();
InputStream eis = zipFile.getInputStream(entry);
System.out.println(eis.read());
write(eis, destFile);
}
}
}
/**
* 將輸入流中的數據寫到指定文件
*
* @param inputStream
* @param destFile
*/
public static void write(InputStream inputStream, File destFile) throws IOException
{
BufferedInputStream bufIs = null;
BufferedOutputStream bufOs = null;
try {
bufIs = new BufferedInputStream(inputStream);
bufOs = new BufferedOutputStream(new FileOutputStream(destFile));
byte[] buf = new byte[DEFAULT_BUFSIZE];
int len = 0;
while ((len = bufIs.read(buf, 0, buf.length)) > 0) {
bufOs.write(buf, 0, len);
}
} catch (IOException ex) {
throw ex;
} finally {
close(bufOs, bufIs);
}
}
/**
* 安全關閉多個流
*
* @param streams
*/
public static void close(Closeable... streams)
{
try {
for (Closeable s : streams) {
if (s != null)
s.close();
}
} catch (IOException ioe) {
ioe.printStackTrace(System.err);
}
}
/**
* @param args
* @throws java.lang.Exception
*/
public static void main(String[] args) throws Exception
{
// unZip(new File(ZipDemo.class.getResource("D:/123/HKRT-B2B.zip").toURI()), "D:/123/");
unZip("D:/123/123.zip", "D:/123/");
// new File();
}
}
Ⅵ java如何解壓頁面上傳到伺服器的zip文件
這個轉換肯定是會出錯的,struts 的formFile跟zipFile沒有直接關系,怎麼能這么強制轉化呢?
建議
1. 把文件保存到一個臨時目錄(保存為zip文件)
2. 讀取這個文件
3. 抽取想要的文件
4. 把臨時文件刪除
Ⅶ java實現多文件上傳
即使再多文件也是通過的單個文件逐次上傳的(zip等壓縮包實際上是一個文件)。實現思路就是將多個文件循環進行上傳,上傳方法舉例:
/**
* 上傳文件
*
* @param fileName
* @param plainFilePath 文件路徑路徑
* @param filepath
* @return
* @throws Exception
*/
public static String fileUploadByftp(String plainFilePath, String fileName, String filepath) throws Exception {
FileInputStream fis = null;
ByteArrayOutputStream bos = null;
FTPClient ftpClient = new FTPClient();
String bl = "false";
try {
fis = new FileInputStream(plainFilePath);
bos = new ByteArrayOutputStream(fis.available());
byte[] buffer = new byte[1024];
int count = 0;
while ((count = fis.read(buffer)) != -1) {
bos.write(buffer, 0, count);
}
bos.flush();
Log.info("加密上傳文件開始");
Log.info("連接遠程上傳伺服器"+CCFCCBUtil.CCFCCBHOSTNAME+":"+22);
ftpClient.connect(CCFCCBUtil.CCFCCBHOSTNAME, 22);
ftpClient.login(CCFCCBUtil.CCFCCBLOGINNAME, CCFCCBUtil.CCFCCBLOGINPASSWORD);
FTPFile[] fs;
fs = ftpClient.listFiles();
for (FTPFile ff : fs) {
if (ff.getName().equals(filepath)) {
bl="true";
ftpClient.changeWorkingDirectory("/"+filepath+"");
}
}
Log.info("檢查文件路徑是否存在:/"+filepath);
if("false".equals(bl)){
ViewUtil.dataSEErrorPerformedCommon( "查詢文件路徑不存在:"+"/"+filepath);
return bl;
}
ftpClient.setBufferSize(1024);
ftpClient.setControlEncoding("GBK");
// 設置文件類型(二進制)
ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
ftpClient.storeFile(fileName, fis);
Log.info("上傳文件成功:"+fileName+"。文件保存路徑:"+"/"+filepath+"/");
return bl;
} catch (Exception e) {
throw e;
} finally {
if (fis != null) {
try {
fis.close();
} catch (Exception e) {
Log.info(e.getLocalizedMessage(), e);
}
}
if (bos != null) {
try {
bos.close();
} catch (Exception e) {
Log.info(e.getLocalizedMessage(), e);
}
}
}
}
備註:只需要修改上傳的伺服器地址、用戶名、密碼即可進行伺服器訪問上傳。根據實際需要修改即可。
Ⅷ Java裡面怎麼導入壓縮包
首先解壓。 File->New->Java Project 不用填project,不要選擇use default location, 然後browse是選擇要導入的java項目; 如果只是java源文件的話,你就用Eclipse新建一個項目,然後把文件粘到項目的src文件夾下即可。
Ⅸ 怎樣用java實現壓縮傳輸文件夾
java有ZIP相關的類用來把文件夾打包成zip文件,然後傳輸
或者用ZIPInputStream/ZIPoutputStream壓縮數據流來傳輸
不知道你要的是哪種