国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

java - input file類型上傳了一個(gè)文件,想計(jì)算一下上傳文件的大小?

瀏覽:149日期:2024-01-19 17:49:02

問(wèn)題描述

上傳成功之后,用 request.getParameter('filetxt');拿到的是一個(gè)路徑:C:fakepathtest.txt這個(gè)路徑并非是我本地的路徑,已上傳就已經(jīng)是這個(gè)路徑了。現(xiàn)在我用了一個(gè)方法,來(lái)計(jì)算這個(gè)文件的大小,但是沒有成功,不知道為什么?計(jì)算大小的方法如下:

public void getFileSize(String path){//傳入文件路徑File file = new File(path);//測(cè)試此文件是否存在if(file.exists()){ //如果是文件夾 //這里只檢測(cè)了文件夾中第一層 如果有需要 可以繼續(xù)遞歸檢測(cè) if(file.isDirectory()){int size = 0;for(File zf : file.listFiles()){ if(zf.isDirectory()) continue; size += zf.length();}System.out.println('文件夾 '+file.getName()+' Size: '+(size/1024f)+'kb'); }else{System.out.println(file.getName()+' Size: '+(file.length()/1024f)+'kb'); }//如果文件不存在}else{ System.out.println('此文件不存在');} }

調(diào)用方法: String filetxt = request.getParameter('filetxt');fileSize.getFileSize(filetxt);

(filetxt = 'C:fakepathtest.txt')

結(jié)果是:此文件不存在

問(wèn)題解答

回答1:

文件上傳傳輸?shù)母袷脚c一般的表單提交不同,它使用了multipart/form-data格式編碼數(shù)據(jù),request.getParameter只能得到鍵值對(duì),文件需要做特殊處理,主要分為兩部分。

前臺(tái)處理,確認(rèn)你前臺(tái)form表單的 enctype屬性為multipart/form-data,示例:

<form enctype='multipart/form-data' method='post' action='xxx'> <input type='file' name='file' multiple /><br/> </form>

后臺(tái)處理。tomcat7以上可直接使用原生API HttpServletRequest.getPart(),在servlet中:

Part filePart = request.getPart('file'); // 對(duì)應(yīng) <input type='file' name='file'> long bytes = filePart.getSize(); //獲取文件大小 String fileName = Paths.get(filePart.getSubmittedFileName()).getFileName().toString();//文件名 InputStream fileContent = filePart.getInputStream(); //獲取文件輸入流

具體使用可參考javaee文檔servlet3.0(Tomcat7)以下版本,需要第三方j(luò)ar包來(lái)幫助解析上傳的文件。一般使用Apache的commons-fileupload、commons-fileupload-io ,具體使用可參考官方文檔,不再贅述

回答2:

file.exists()返回false,從你的文件路徑能看出 不見了,需要檢查一下是在哪個(gè)過(guò)程被過(guò)濾掉。

回答3:

上傳文件給你的路徑是 C:fakepathtest.txt 從這個(gè)名字就可以看出來(lái)這是一個(gè)假的路徑。

這個(gè)路徑是瀏覽器在上傳給你的時(shí)候給你的,這個(gè)路徑不是你服務(wù)器上真實(shí)存在的路徑。所以你拿這個(gè)路徑到服務(wù)器上找這個(gè)文件是不可能找到的。

標(biāo)簽: java
主站蜘蛛池模板: 墨脱县| 蕉岭县| 苍溪县| 辉县市| 德保县| 鲁山县| 和田市| 孟津县| 洪江市| 北碚区| 新疆| 阳高县| 聂拉木县| 海原县| 德庆县| 永新县| 卢龙县| 新昌县| 隆子县| 凤翔县| 西乌珠穆沁旗| 蒙山县| 宣武区| 鄂温| 陇川县| 安庆市| 南丹县| 怀化市| 逊克县| 甘肃省| 乌苏市| 辛集市| 乾安县| 乐亭县| 新宾| 景东| 惠州市| 福清市| 库伦旗| 克什克腾旗| 昌邑市|