首页编程java编程java上传文件用什么类,java 传输 获取文件类型

java上传文件用什么类,java 传输 获取文件类型

编程之家2023-10-1386次浏览

其实java上传文件用什么类的问题并不复杂,但是又很多的朋友都不太了解java 传输 获取文件类型,因此呢,今天小编就来为大家分享java上传文件用什么类的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

java上传文件用什么类,java 传输 获取文件类型

java实现多文件上传

即使再多文件也是通过的单个文件逐次上传的(zip等压缩包实际上是一个文件)。实现思路就是将多个文件循环进行上传,上传方法举例:

/**

*上传文件

java上传文件用什么类,java 传输 获取文件类型

*

*@param fileName

*@param plainFilePath文件路径路径

java上传文件用什么类,java 传输 获取文件类型

*@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类是用来做什么的有什么用处(追加40分)

java种的File类的作用和用处如下:

1.直接处理文件和文件系统。File类没有指定信息怎样从文件读取或向文件存储;它描述了文件本身的属性。File对象用来获取或处理与磁盘文件相关的信息,例如权限,时间,日期和目录路径。此外,File还浏览子目录层次结构。很多程序中文件是数据的根源和目标。尽管它们在小应用程序中因为安全原因而受到严格限制,文件仍是存储固定和共享信息的主要资源。Java中的目录当成File对待,它具有附加的属性——一个可以被 list()方法检测的文件名列表。

2.下面的构造函数可以用来生成File对象:

File(String directoryPath)

File(String directoryPath, String filename)

File(File dirObj, String filename)

这里,directoryPath是文件的路径名,filename是文件名,dirObj一个指定目录的File对象。下面的例子创建了三个文件:f1,f2,和f3。第一个File对象是由仅有一个目录路径参数的构造函数生成的。第二个对象有两个参数——路径和文件名。第三个File对象的参数包括指向f1文件的路径及文件名。f3和f2指向相同的文件。

File f1= new File("/");

File f2= new File("/","autoexec.bat");

File f3= new File(f1,"autoexec.bat");

注意:Java能正确处理UNIX和Windows/DOS约定路径分隔符。如果在Windows版本的Java下用斜线(/),路径处理依然正确。记住,如果你用Windows/DOS使用反斜线(/)的约定,你需要在字符串内使用它的转义序列(//)。Java约定是用UNIX和URL风格的斜线来作路径分隔符。

java 传输 获取文件类型

获取文件类型,一般的是列出目前所有的文件类型,根据表头进行相应判断,示例如下:

/**

*件头是位于文件开头的一段承担一定任务的数据,一般都在开头的部分。

*头文件作为一种包含功能函数、数据接口声明的载体文件,用于保存程序的声明(declaration),而定义文件用于保存程序的实现(implementation)。

*为了解决在用户上传文件的时候在服务器端判断文件类型的问题,故用获取文件头的方式,直接读取文件的前几个字节,来判断上传文件是否符合格式。具体代码如下:

*Java代码:

*

*/

packagecom.yonyou.sud.file;

importjava.io.FileInputStream;

importjava.io.IOException;

importjava.util.HashMap;

/**

*获取和判断文件头信息

*

*@authorSud

*

*/

publicclassGetTypeByHead{

//缓存文件头信息-文件头信息

publicstaticfinalHashMap<String,String>mFileTypes=newHashMap<String,String>();

static{

//images

mFileTypes.put("FFD8FF","jpg");

mFileTypes.put("89504E47","png");

mFileTypes.put("47494638","gif");

mFileTypes.put("49492A00","tif");

mFileTypes.put("424D","bmp");

//

mFileTypes.put("41433130","dwg");//CAD

mFileTypes.put("38425053","psd");

mFileTypes.put("7B5C727466","rtf");//日记本

mFileTypes.put("3C3F786D6C","xml");

mFileTypes.put("68746D6C3E","html");

mFileTypes.put("44656C69766572792D646174653A","eml");//邮件

mFileTypes.put("D0CF11E0","doc");

mFileTypes.put("5374616E64617264204A","mdb");

mFileTypes.put("252150532D41646F6265","ps");

mFileTypes.put("255044462D312E","pdf");

mFileTypes.put("504B0304","docx");

mFileTypes.put("52617221","rar");

mFileTypes.put("57415645","wav");

mFileTypes.put("41564920","avi");

mFileTypes.put("2E524D46","rm");

mFileTypes.put("000001BA","mpg");

mFileTypes.put("000001B3","mpg");

mFileTypes.put("6D6F6F76","mov");

mFileTypes.put("3026B2758E66CF11","asf");

mFileTypes.put("4D546864","mid");

mFileTypes.put("1F8B08","gz");

}

/**

*根据文件路径获取文件头信息

*

*@paramfilePath

*文件路径

*@return文件头信息

*/

publicstaticStringgetFileType(StringfilePath){

System.out.println(getFileHeader(filePath));

System.out.println(mFileTypes.get(getFileHeader(filePath)));

returnmFileTypes.get(getFileHeader(filePath));

}

/**

*根据文件路径获取文件头信息

*

*@paramfilePath

*文件路径

*@return文件头信息

*/

publicstaticStringgetFileHeader(StringfilePath){

FileInputStreamis=null;

Stringvalue=null;

try{

is=newFileInputStream(filePath);

byte[]b=newbyte[4];

/*intread()从此输入流中读取一个数据字节。

*intread(byte[]b)从此输入流中将最多b.length个字节的数据读入一个byte数组中。

*intread(byte[]b,intoff,intlen)从此输入流中将最多len个字节的数据读入一个byte数组中。

*/

is.read(b,0,b.length);

value=bytesToHexString(b);

}catch(Exceptione){

}finally{

if(null!=is){

try{

is.close();

}catch(IOExceptione){

}

}

}

returnvalue;

}

/**

*将要读取文件头信息的文件的byte数组转换成string类型表示

*

*@paramsrc

*要读取文件头信息的文件的byte数组

*@return文件头信息

*/

privatestaticStringbytesToHexString(byte[]src){

StringBuilderbuilder=newStringBuilder();

if(src==null||src.length<=0){

returnnull;

}

Stringhv;

for(inti=0;i<src.length;i++){

//以十六进制(基数16)无符号整数形式返回一个整数参数的字符串表示形式,并转换为大写

hv=Integer.toHexString(src[i]&0xFF).toUpperCase();

if(hv.length()<2){

builder.append(0);

}

builder.append(hv);

}

System.out.println(builder.toString());

returnbuilder.toString();

}

publicstaticvoidmain(String[]args)throwsException{

finalStringfileType=getFileType("E:/Java编程思想读书笔记.docx");

System.out.println(fileType);

}

}

文章分享结束,java上传文件用什么类和java 传输 获取文件类型的答案你都知道了吗?欢迎再次光临本站哦!

有什么自学java的app(一个几乎零基础的小白,怎么学java)java用什么jar包解析html文档(java中几种解析html的工具)