java獲取上傳的文件
直接通過工具類進行解壓或者壓縮文件即可。
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怎麼獲取上傳文件的後綴
給你個示例,應該看得懂吧
File f =new File("Test.txt");
String fileName=f.getName();
String prefix=fileName.substring(fileName.lastIndexOf(".")+1);
System.out.println(prefix);
}
㈢ java 怎麼獲取上傳文件的大小
用InputStream打開該文件。
InputStream in =new FileInputStream("sdf.txt");
int size=in.available()
得到了size就是你該文件的位元組數
㈣ JAVA如何獲取上傳後的文件名
這里的upload就是你web伺服器根目錄下的一個目錄,是放置上傳文件的目錄,而文件名是這個方法生成的its.getIPTimeStampRand(),據判斷應該是根據客戶端IP加上時間戳生成的唯一值,最後文件的後綴名是item.getName().split("\\.")[1],你可以去upload目錄就能看到。
㈤ java怎麼讀取上傳的excel文件
java怎麼讀取上傳的excel文件,解決辦法:
添加jar文件,java導入導出Excel文件要引入jxl.jar包,最關鍵的是這套API是純Java的,並不依賴Windows系統,即使運行在Linux下,它同樣能夠正確的處理Excel文件。
jxl對Excel表格的認識,每個單元格的位置認為是由一個二維坐標(i,j)給定,其中i表示列,如歲j表示行,並且從上到下遞增,從左到右遞增。
對於合並單元格的以最左,最上的單元格的坐標為准。如下圖中t.xls,一班名單(0,0),陳茵(1,2),陳開先(1,6)。
4.java代碼對t.xls的讀取
㈥ java怎麼獲取上傳文件的路徑
java文件中獲得路徑
Thread.currentThread().getContextClassLoader().getResource("") //獲得資源文件(.class文件)所在路徑
ClassLoader.getSystemResource("")
Class_Name.class.getClassLoader().getResource("")
Class_Name.class .getResource("/")
Class_Name.class .getResource("") // 獲得當前類所在路徑
System.getProperty("user.dir") // 獲得項目根目錄的絕對路徑
System.getProperty("java.class.path") //得到類路徑和包路徑
列印輸出依次如下:
file:/F:/work_litao/uri_test/WebContent/WEB-INF/classes/
file:/F:/work_litao/uri_test/WebContent/WEB-INF/classes/
file:/F:/work_litao/uri_test/WebContent/WEB-INF/classes/
file:/F:/work_litao/uri_test/WebContent/WEB-INF/classes/
file:/F:/work_litao/uri_test/WebContent/WEB-INF/classes/com/xml/imp/
F:\work_litao\uri_test
F:\work_litao\uri_test\WebContent\WEB-INF\classes;F:\work_litao\uri_test\WebContent\WEB-INF\lib\dom4j.jar
2、 JSP中獲得當前應用的相對路徑和絕對路徑
根目錄所對應的絕對路徑:request.getRequestURI()
文件的絕對路徑 :application.getRealPath(request.getRequestURI());
當前web應用的絕對路徑 :application.getRealPath("/");
取得請求文件的上層目錄:new File(application.getRealPath(request.getRequestURI())).getParent()
㈦ java如何獲取jsp頁面上傳的文件路徑
java文件中獲得路徑 ThreadcurrentThread()getContextClassLoader()getResource("") //獲得資源文件(class文件)所在路徑 ClassLoadergetSystemResource("") Class_NameclassgetClassLoader()getResource("") Class_Nameclass getResoujava如何獲取jsp頁面上傳的文件路徑
㈧ java怎麼獲取上傳文件的路徑
可以通過changeWorkingDirectory方法切換上傳路徑來進行文件上傳。 上傳方法舉例: /** * 上傳文件 * * @param fileName * @param plainFilePath 文件路徑路徑 * @param filepath * @return * @throws Exception */ public static String fileU
㈨ java request 怎麼查上傳文件
<form action="uploadURL" method="post" enctype="multipart/form-data"明坦>
標題:<input type="text" name="tit" /><br/>
內容:<input type="text" name="te" /><br/>
圖片1:<input type="file" name="img1"/><br/>
圖片2:<input type="file" name="img2"/><br/>
<input type="submit" value="提交">
</form>
//創建硬碟文件工廠對象,設置上傳的緩存區大小和臨時文件
DiskFileItemFactory disk=new DiskFileItemFactory();
//實例化servlet上傳的對象,把表單的數據都放在這個對象中
ServletFileUpload up=new ServletFileUpload(disk);
List<FileItem> list=up.parseRequest(request);
//由於list中有普通表單和非普通表單 所以給定兩拿族個集合
Map<String,String> map=new HashMap<String, String>();
for(int i=0;i<list.size();i++){
FileItem item=list.get(i); //獲取表單的數據
if(item.isFormField()){//判斷該數據屬否是普通表單的數據
//獲取普通表單的數據
String namename=item.getFieldName(); //獲取表單的名
String formvalue=item.getString(); //獲取輸出的值
String value=new String(formvalue.getBytes("ISO-8859-1"),"utf-8"); //給獲取的值 設置編碼
//把普通激敏桐表單的數據放入map中
map.put(namename, value);
}else{
//非普通
String filename=item.getName(); ////獲取文件名的名
//獲取伺服器上upload的地址
String rootpath=getServletContext().getRealPath("upload");
//獲取文件的路徑
String newpath=rootpath+"\\"+filename;
//寫入文件
item.write(new File(newpath));
li.add(filename);
}
}
㈩ java怎樣獲取上傳文件真實路徑
可以通過changeWorkingDirectory方法切換上傳路徑來進行文件上傳。
上傳方法舉例:
/**
* 上傳文件
*
* @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);
}
}
}
}
備註:只需要修改上傳的伺服器地址、用戶名、密碼即可進行伺服器訪問上傳。根據實際需要修改即可。