java getFileName() 为什么只剩下文件名
FormFilefile=uploadFile.getFile();Filef=newFile(file.getFileName());FileInputStreamfi...
FormFile file = uploadFile.getFile();
File f=new File(file.getFileName());
FileInputStream fin = new FileInputStream(f);
ib = new byte[(int)f.length()];
fin.read(ib);
fin.close();
老提示说,系统未找到文件。后来我查看了一下:file.getFileName();,发现他的值没有路径了。比如我上传:c:\abc.jpg,结果file.getFileName()=abc.jpg了。路径没了,这个如何改进呢?谢谢
首先非常感谢大家给我的留言回复。可能我的描述不是很清楚。其实我这个功能是用来将文件直接保存到sql数据库的images字段用的。所以,我把文件内容读到ib(byte[]类型)中,然后存储到我的持久层对象,保存到数据库中。就是File f=new File(file.getFileName());的getFileName(),不包含路径,结果导致系统如上提示。但是我在watch中,该属性值且有路径。 我这里的file只有如下属性:file.getContentType();file.getFileName();file.getClass();file.getFileData();file.getFileSize();file.getInputStream() 展开
File f=new File(file.getFileName());
FileInputStream fin = new FileInputStream(f);
ib = new byte[(int)f.length()];
fin.read(ib);
fin.close();
老提示说,系统未找到文件。后来我查看了一下:file.getFileName();,发现他的值没有路径了。比如我上传:c:\abc.jpg,结果file.getFileName()=abc.jpg了。路径没了,这个如何改进呢?谢谢
首先非常感谢大家给我的留言回复。可能我的描述不是很清楚。其实我这个功能是用来将文件直接保存到sql数据库的images字段用的。所以,我把文件内容读到ib(byte[]类型)中,然后存储到我的持久层对象,保存到数据库中。就是File f=new File(file.getFileName());的getFileName(),不包含路径,结果导致系统如上提示。但是我在watch中,该属性值且有路径。 我这里的file只有如下属性:file.getContentType();file.getFileName();file.getClass();file.getFileData();file.getFileSize();file.getInputStream() 展开
5个回答
展开全部
java io包中File类中并没有getFileName()方法,这里应该是指getName()方法,此方法仅返回文件名,并不会包含路径。如果需要完整路径+文件名,应该使用getPath()取得路径后再组合使用getName(),拼出一个完整路径+文件名的字符串。
==File类中常用方法如下,下文中file是File类的一个实例==
取得文件名称的方法: file.getName()
取得文件路径的方法: file.getPath()
判断文件是否绝对路径: file.isAbsolute()
取得文件的根目录: file.getParent()
判断文件是否存在: file.exists()
判断是否是目录: file.isDirectory()
判断是否是文件: file.isFile()
判断是否是隐藏文件: file.isHidden()
判断是否可读: file.canRead()
判断是否可写: file.canWrite()
==File类中常用方法如下,下文中file是File类的一个实例==
取得文件名称的方法: file.getName()
取得文件路径的方法: file.getPath()
判断文件是否绝对路径: file.isAbsolute()
取得文件的根目录: file.getParent()
判断文件是否存在: file.exists()
判断是否是目录: file.isDirectory()
判断是否是文件: file.isFile()
判断是否是隐藏文件: file.isHidden()
判断是否可读: file.canRead()
判断是否可写: file.canWrite()
展开全部
file.getFileName()看名字就知道是获取该文件的名字。你这个类我没看见过。不过呢,file里面肯定有个什么什么path的方法。选那个就行。
比如看我的File file = new File(s);
file.getPath();
比如看我的File file = new File(s);
file.getPath();
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你这用的不是struts的上传吗,怎么还这么写,这样是完全错误的!!!
文件路径根本用不到,你用路径的话就变成读取服务器本地文件了,客户端根本上传不了,因为执行的时候是在服务器端执行的。
正确的写法是下面这样:
FormFile file = uploadFile.getFile();
byte[] fileData = file .getFileData();
FileUtil.saveFileTODir(fileData, filePath);//filePath是自己定义的服务器端存放路径
文件路径根本用不到,你用路径的话就变成读取服务器本地文件了,客户端根本上传不了,因为执行的时候是在服务器端执行的。
正确的写法是下面这样:
FormFile file = uploadFile.getFile();
byte[] fileData = file .getFileData();
FileUtil.saveFileTODir(fileData, filePath);//filePath是自己定义的服务器端存放路径
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
直接用getPath(),得到就是文件的完整路径,用getName()得到的是文件夹或者文件的名字,用getAbsolutePath()得到的是这个文件所在的路径(不包含文件夹和文件名).
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
f.getAbsolutePath()+f.getFileName();
上面的结果是: c:\abc.jpg
上面的结果是: c:\abc.jpg
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询