- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在开发一个应用程序,用户可以选择浏览和上传 Excel 文件,但我很难获取正在浏览的文件的绝对路径。因为位置可以是任何东西(Windows/Linux)。
import org.apache.myfaces.custom.fileupload.UploadedFile;
-----
-----
private UploadedFile inpFile;
-----
getters and setters
public UploadedFile getInpFile() {
return inpFile;
}
@Override
public void setInpFile(final UploadedFile inpFile) {
this.inpFile = inpFile;
}
我们使用 jsf 2.0 进行 UI 开发,使用 Tomahawk 库进行浏览按钮。
浏览按钮的示例代码
t:inputFileUpload id="file" value="#{sampleInterface.inpFile}"
valueChangeListener="#{sampleInterface.inpFile}" />
上传按钮示例代码
<t:commandButton action="#{sampleInterface.readExcelFile}" id="upload" value="upload"></t:commandButton>
这里的逻辑
浏览按钮 -> 用户将通过浏览位置选择文件上传按钮 -> 点击上传按钮时,会触发 SampleInterface 中的 readExcelFile 方法。
示例接口(interface)实现文件
public void readExcelFile() throws IOException {
System.out.println("File name: " + inpFile.getName());
String prefix = FilenameUtils.getBaseName(inpFile.getName());
String suffix = FilenameUtils.getExtension(inpFile.getName());
...rest of the code
......
}
文件名:abc.xls
前缀:abc
后缀:xls
请帮助我获取正在浏览的文件的完整路径(如 c:.....),然后将此绝对路径传递给 excelapachepoi 类,在该类中它将被解析并显示/存储内容在ArrayList中。
最佳答案
为什么需要绝对文件路径?您可以利用这些信息做什么?创建文件
?抱歉,不,如果网络服务器运行在与网络浏览器物理上不同的机器上,那么这是绝对不可能的。再想一想。更重要的是,正确的网络浏览器不会发回有关绝对文件路径的信息。
您只需根据客户端已发送的上传文件的内容创建文件
即可。
String prefix = FilenameUtils.getBaseName(inpFile.getName());
String suffix = FilenameUtils.getExtension(inpFile.getName());
File file = File.createTempFile(prefix + "-", "." + suffix, "/path/to/uploads");
InputStream input = inpFile.getInputStream();
OutputStream output = new FileOutputStream(file);
try {
IOUtils.copy(input, output);
} finally {
IOUtils.closeQuietly(output);
IOUtils.closeQuietly(input);
}
// Now you can use File.
关于java - getAbsolutePath() 类似 UploadedFile(org.apache.myfaces.custom.fileupload.UploadedFile;) 中的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8443246/
我的问题是 getAbsolutePath 忽略了我试图查找的文件周围的某些文件夹。我想做的是仅使用文件名获取文件的文件路径。这是我正在使用的代码: import java.awt.Desktop;
这可能是一个非常简单的解决方案,但我似乎找不到合适的设置来调整它。我有一个文件,比方说 config.prop 需要我的应用程序读取它。它位于我的应用程序的相对路径 ./someFolder/conf
我创建一个文件并使用以下代码将图像保存到该文件中: private File createImageFile() throws IOException { String timeSta
我正在使用 Java 开发 Halo: CE 自定义游戏启动器,我正在使用 Java 中的 Properties 类设置首选项系统,以便用户可以设置自定义游戏路径。我使用 JFileChooser 选
简单看一下描述,例子最重要。 1、getPath(): 返回定义时的路径,(就是你写什么路径,他就返回什么路径) 2、getAbsolutePath(): 返回绝对路径,但不会处理“.”和“
这是代码: String filename = "sql.txt"; File file = new File(filename); String path = file.getAbsolutePat
当我创建一个新的动态 Web 项目并执行以下代码时: File file = new File(""); String path = file.getAbsolutePath(); System.ou
我正在开发一个简单的项目,我正在尝试获取文件的绝对路径。这就是我正在尝试的: String s = "file.txt"; System.out.println(new File(s).getAbso
在 Windows 上,File::getAbsolutePath() 将在路径中返回反斜杠;在 UNIX 上,正斜杠。 由于这两个版本在 Windows 计算机上都是有效的文件名,是否可以强制 Fi
这个问题在这里已经有了答案: What's the difference between getPath(), getAbsolutePath(), and getCanonicalPath() i
我遇到了一个错误,该错误似乎是由 File.getAbsolutePath() 返回 null 引起的。什么条件会导致这种情况? (看到异常的系统运行的是Windows XP。) javadoc对路径
环境:类 getExternalStorageDirectory():方法 getAbsolutePath():方法 我想知道“class.method.method”语法。 您能让我知道“metho
我有下面的代码,我根据预先创建的文件“test.brd”创建一个文件类型,并在此文件上调用 getAbsolutePath() 方法,这一切都正常工作。但是,当我运行exists()方法时,它被视为不
我想将数据库与 apk 文件一起存储,但当我尝试对路径进行硬编码时,应用程序似乎找不到数据库。 我用它来对路径进行硬编码,但不起作用。 private final String DB_PATH="/d
这是 this one 的后续问题(作为一个简短的描述:我已经能够通过在 OS X 和 Windows 上双击 .jar 文件来运行 Java 程序,但在 Linux 上却不行,因为后者我得到了一个文
我的代码 myDb = openOrCreateDatabase("/sdcard/FashionGirl/ImagesDB.db", Context.MODE_PRIVATE, null); myD
通过阅读一些相关的文字,我知道了两者之间的区别。但我很好奇为什么 getCanonicalPath() 会抛出已检查的异常,而 getAbsolutePath() 不会抛出任何异常? 最佳答案 But
我试着在我的手机内存中写入一些东西。 起初,我将路径硬编码为: myFile = new File("/sdcard/" + txtName.getText() + ".txt"); 这完全没问题。
我有一个方法 fileUpload() 可以打开 FileChooser-Menu。如果我选择一个文件,那么绝对路径和文件大小会写在控制台上。首先,我仅尝试以下操作: System.out.print
我正在尝试编写一个简单的测试方法来将文件从 Asset 文件夹复制到 sd 卡。当我尝试打开 SD 卡上的文件时,它崩溃了。 代码 try { // POp
我是一名优秀的程序员,十分优秀!