關於獲取獲取檔案的路徑問題
想做一個根據使用者提供的檔案地址,然後根據檔案的路徑對檔案進行檢測,但是弄了好久發現僅僅只能獲取到檔名,不能獲取到檔案的所在路徑,查了好多資料,無果,所以換了種方法來實現。借用Struts2中的fileupload功能。
<form action="fileInfo" method="post" enctype="multipart/form-data">
<table>
<tr>
<td>請選擇待檢測的檔案:</td>
<td><input type="file" name="filename" ></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="提交"></td>
</tr>
</table>
</form>
在action檔案中寫上
package com.emptyResult;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import com.opensymphony.xwork2.ActionSupport;
public class FileInfo extends ActionSupport{
/**
*
*/
private static final long serialVersionUID = 1L;
File filename; //獲取上傳的檔案;
String filename
String filenameFileName;//獲取上傳檔案的名稱;
public File getFilename() {
return filename;
}
public void setFilename(File filename) {
this.filename = filename;
}
public String getFilenameContentType() {
return filenameContentType;
}
public void setFilenameContentType(String filenameContentType) {
this.filenameContentType = filenameContentType;
}
public String getFilenameFileName() {
return filenameFileName;
}
public void setFilenameFileName(String filenameFileName) {
this.filenameFileName = filenameFileName;
}
@Override
public String execute() throws Exception {
// TODO Auto-generated method stub
BufferedReader br = new BufferedReader(new FileReader(filename));
String str;
while((str = br.readLine())!=null)
System.out.println(str);
return "success";
}
}
利用Struts2中的commons-fileupload-1.3.1.jar 提供的功能,但是一定要記住在action中要宣告3個變數,變數的命名也是有一定的規定,紅色註釋部分的名稱應該一致。
可能是由於安全的考慮,直接獲取上傳檔案的本地地址行不通,此時可以對上傳的檔案進行相應的檔案處理,相當於檔案的副本被上傳,所以我們想對檔案的任何處理都可以通過處理這個檔案的副本來完成。