java文件上傳獲取文件名
Ⅰ 如何在servlet得到jsp上傳的文件的文件名
可以使用commons-fileupload組件實現文件上傳,步驟如下:
1、添加jar包:commons-fileupload-x.x.x.jar和commons-io-2.4.jar
2、編寫或修改form表單
1) 提交方式必須是post
2) 為表單增加屬性enctype="multipart/form-data"
3) 為文件上傳單獨提供servlet,因為增加enctype屬性後,無法使用常規的請求對象來獲取提交的數據
3、使用Commons-FileUpload組件實現文件的上傳
1) 確定本次請求是否是文件上傳請求
boolean flag=ServletFileUpload.isMultipartContent(request);
2) 創建文件上傳的工廠對象
FileItemFactory factory=new DiskFileItemFactory();
3) 創建ServletFileUpload對象,並將工廠對象作為參數傳入
ServletFileUpload upload=new ServletFileUpload(factory);
4) 使用上傳對象從請求對象中解析出提交的所有表單元素
List<FileItem> lstForms=upload.parseRequest(request);
5) 遍歷表單元素集合,實現取出表單元素和上傳文件
//遍歷所有表單元素
for (FileItem fileItem : lstForms) {
//判斷每一個表單元素是否是普通表單
if(fileItem.isFormField()){
System.out.println(fileItem.getString("UTF-8"));
}else{
//上傳前准備工作
//a、上傳後的路徑this.getServletContext().getRealPath("/")會出去當前項目在 部署的伺服器上的絕對路徑
String path=this.getServletContext().getRealPath("/")+"files/";
//b、找出要上傳的文件的名字
String fileName=fileItem.getName();
fileName=fileName.substring(fileName.lastIndexOf("\\")+1);
//c、上傳
fileItem.write(new File(path+fileName));
out.println("<h2>"+fileName+"上傳成功!</h2>");
Ⅱ java怎麼獲取上傳文件的後綴
給你個示例,應該看得懂吧
File f =new File("Test.txt");
String fileName=f.getName();
String prefix=fileName.substring(fileName.lastIndexOf(".")+1);
System.out.println(prefix);
}
Ⅲ jsp中怎麼取得上傳文件的路徑和文件名
jsp 代碼
<祥含%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title></title>
<meta http-equiv="pragma"宴輪 content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
</head>
<body>
<table align="center" class="fix_table">
<tr align="center">
<td class="long">
<form action="import.do" method="post"
enctype="multipart/form-data">
上傳文件:
<input type="file" name="file1" id="file1"/>
<input type="submit" value="確定" />
</form>
</td>
</tr>
<tr>
<td>
<input type="button" value="獲取上傳文件" onclick="test();"/>
</td>
</tr>
</table>
</body>
<script type="text/javascript">
function test(){
var file=document.getElementById("file1").value;
alert(file);
}
</script>
</html>
修改瀏覽謹祥笑器設置
Ⅳ JAVA WEB文件上傳步驟
JAVA WEB文件上傳步驟如下:
實現 Web 開發中的文件上傳功能,兩個操作:在 Web 頁面添加上傳輸入項,在 Servlet 中讀取上傳文件的數據並保存在本地硬碟中。
1、Web 端上傳文件。在 Web 頁面中添加上傳輸入項:<input type="file"> 設置文件上傳輸入項時應注意:(1) 必須設置 input 輸入項的 name 屬性,否則瀏覽器將不會發送上傳文件的數據。(2) 必須把 form 的 enctype 屬性設為 multipart/form-data,設置該值後,瀏覽器在上傳文件時,將把文件數據附帶在 http 請求消息體中,並使用 MIME 協議對上傳文件進行描述,以方便接收方對上傳數據進行解析和處理。(3) 表單提交的方式要是 post
2、伺服器端獲取文件。如果提交表單的類型為 multipart/form-data 時,就不能採用傳統方式獲取數據。因為當表單類型為 multipart/form-data 時,瀏覽器會將數據以 MIME 協議的形式進行描述。如果想在伺服器端獲取數據,那麼我們必須採用獲取請求消息輸入流的方式來獲取數據。
3、Apache-Commons-fileupload。為了方便用戶處理上傳數據,Apache 提供了一個用來處理表單文件上傳的開源組建。使用 Commons-fileupload 需要 Commons-io 包的支持。
4、fileuplpad 組建工作流程
(1)客戶端將數據封裝在 request 對象中。
(2)伺服器端獲取到 request 對象。
(3)創建解析器工廠 DiskFileItemFactory 。
(4)創建解析器,將解析器工廠放入解析器構造函數中。之後解析器會對 request 進行解析。
(5)解析器會將每個表單項封裝為各自對應的 FileItem。
(6)判斷代表每個表單項的 FileItem 是否為普通表單項 isFormField,返回 true 為普通表單項。
(7)如果是普通表單項,通過 getFieldName 獲取表單項名,getString 獲得表單項值。
(8)如果 isFormField 返回 false 那麼是用戶要上傳的數據,可以通過 getInputStream 獲取上傳文件的數據。通過getName 可以獲取上傳的文件名。
Ⅳ java或js(可用jquery)如何獲取上傳文件原始路徑名
上傳文件時,我想獲取客戶端上傳文件的原始路徑。第一考慮,當然是使用js,例如網上可以找到的:
function getPath(obj) { if (obj) { if (window.navigator.userAgent.indexOf("MSIE") >= 1) { obj.select(); return document.selection.createRange().text; } else if (window.navigator.userAgent.indexOf("Firefox") >= 1) { if (obj.files) { return obj.files.item(0).getAsDataURL(); } return obj.value; } return obj.value; } } 但這樣的代碼在Ie下還是可行的,但在火狐下不兼容。所以又想通過servlet的第三方工具去做,例如FileUpload,本以為FileItem下的getName()方法能夠得到全路徑名,但結果仍然只得到文件名,很是杯具!求解決方法!?
引用<input type="file" name="file" />至於你說的,不明白你的意思關鍵問題是我要獲得這個路徑,並且傳遞到後台!用js會有兼容性問題,如果用FileUpload上傳,是否可以獲得呢?我是沒有得到的!!! 問題補充:zhanjia 寫道上傳文件一般用input標簽,type為file,瀏覽選擇文件後就是文件在本地的絕對路徑了
引用<input type="file" name="file" />至於你說的,不明白你的意思關鍵的問題是我要獲得這個本地路徑,並且傳到後台!用js可以得到,但存在兼容性問題!?如果用FileUpload呢?我暫時還沒有得到!!! 問題補充:zhanjia 寫道網上的一些解決方案:
一般都是上傳以後在資料庫中保存上傳後的文件路徑,本地路徑一般沒意義
除非像上面所說的文件上傳預覽,還有那麼點用處
我用來做數據介面的,我僅僅是把路徑傳給另一個系統,然後那個系統就可以從這個路徑取文件了。如果先上傳一次,再給對方,這樣不但影響上傳速度,而且會產生大量的垃圾文件。
Ⅵ java中怎麼獲取form表單提交的一個文件的文件地址和文件名(包括文件後綴)
由於操作系統和瀏覽器為了安全性,瀏覽器點擊上傳文件後,瀏覽器是不知道真實路徑的,也就是說瀏覽器是不知道E:\我的文件夾\文件1.xlsx的位置的。
文件的後綴可以在前台通過jquery的方式獲取到上傳文件的文件名稱,然後通過字元串截取就可以了。
Ⅶ java中已知request如何獲得上傳文件的文件名
file.getOriginalFilename
Ⅷ JAVA如何獲取上傳後的文件名
這里的upload就是你web伺服器根目錄下的一個目錄,是放置上傳文件的目錄,而文件名是這個方法生成的its.getIPTimeStampRand(),據判斷應該是根據客戶端IP加上時間戳生成的唯一值,最後文件的後綴名是item.getName().split("\\.")[1],你可以去upload目錄就能看到。