當前位置:九游会j9娱乐平台-九游ag登录中心网址 » 文件管理 » java上傳文件格式

java上傳文件格式-九游会j9娱乐平台

發布時間: 2024-06-27 06:21:46

1. java怎麼用commons-fileupload實現上傳文件

文件上傳步驟:
1.導入jar包
common-fileupload.jar
common-io.jar
2.上傳jsp頁面編輯


上傳用戶:

上傳文件1:

上傳文件2:




3.消息提示頁面(成功or失敗)

${message}

4.處理文件上傳的servlet編寫
importjava.io.file;
importjava.io.fileoutputstream;
importjava.io.ioexception;
importjava.io.inputstream;
importjava.util.list;
importjava.util.uuid;

importjavax.servlet.servletexception;
importjavax.servlet.http.httpservlet;
importjavax.servlet.http.httpservletrequest;
importjavax.servlet.http.httpservletresponse;
importorg.apache.commons.fileupload.fileitem;
importorg.apache.commons.fileupload.fileuploadbase;
importorg.apache.commons.fileupload.progresslistener;
importorg.apache.commons.fileupload.disk.diskfileitemfactory;
importorg.apache.commons.fileupload.servlet.servletfileupload;

{

publicvoiddoget(httpservletrequestrequest,httpservletresponseresponse)
throwsservletexception,ioexception{
//得到上傳文件的保存目錄,將上傳的文件存放於web-inf目錄下,不允許外界直接訪問,保證上傳文件的安全
stringsavepath=this.getservletcontext().getrealpath("/web-inf/upload");
//上傳時生成的臨時文件保存目錄
stringtemppath=this.getservletcontext().getrealpath("/web-inf/temp");
filetmpfile=newfile(temppath);
if(!tmpfile.exists()){
//創建臨時目錄
tmpfile.mkdir();
}

//消息提示
stringmessage="";
try{
//使用apache文件上傳組件處理文件上傳步驟:
//1、創建一個diskfileitemfactory工廠
diskfileitemfactoryfactory=newdiskfileitemfactory();
//設置工廠的緩沖區的大小,當上傳的文件大小超過緩沖區的大小時,就會生成一個臨時文件存放到指定的臨時目錄當中。
factory.setsizethreshold(1024*100);//設置緩沖區的大小為100kb,如果不指定,那麼緩沖區的大小默認是10kb
//設置上傳時生成的臨時文件的保存目錄
factory.setrepository(tmpfile);
//2、創建一個文件上傳解析器
servletfileuploapload=newservletfileupload(factory);
//監聽文件上傳進度
upload.setprogresslistener(newprogresslistener(){
publicvoipdate(longpbytesread,longpcontentlength,intarg2){
system.out.println("文件大小為:" pcontentlength ",當前已處理:" pbytesread);
/**
*文件大小為:14608,當前已處理:4096
文件大小為:14608,當前已處理:7367
文件大小為:14608,當前已處理:11419
文件大小為:14608,當前已處理:14608
*/
}
});
//解決上傳文件名的中文亂碼
upload.setheaderencoding("utf-8");
//3、判斷提交上來的數據是否是上傳表單的數據
if(!servletfileupload.ismultipartcontent(request)){
//按照傳統方式獲取數據
return;
}

//設置上傳單個文件的大小的最大值,目前是設置為1024*1024位元組,也就是1mb
upload.setfilesizemax(1024*1024);
//設置上傳文件總量的最大值,最大值=同時上傳的多個文件的大小的最大值的和,目前設置為10mb
upload.setsizemax(1024*1024*10);
//4、使用servletfileupload解析器解析上傳數據,解析結果返回的是一個list集合,每一個fileitem對應一個form表單的輸入項
listlist=upload.parserequest(request);
for(fileitemitem:list){
//如果fileitem中封裝的是普通輸入項的數據
if(item.isformfield()){
stringname=item.getfieldname();
//解決普通輸入項的數據的中文亂碼問題
stringvalue=item.getstring("utf-8");
//value=newstring(value.getbytes("iso8859-1"),"utf-8");
system.out.println(name "=" value);
}else{//如果fileitem中封裝的是上傳文件
//得到上傳的文件名稱,
stringfilename=item.getname();
system.out.println(filename);
if(filename==null||filename.trim().equals("")){
continue;
}
//注意:不同的瀏覽器提交的文件名是不一樣的,有些瀏覽器提交上來的文件名是帶有路徑的,如:c:a1.txt,而有些只是單純的文件名,如:1.txt
//處理獲取到的上傳文件的文件名的路徑部分,只保留文件名部分
filename=filename.substring(filename.lastindexof("\") 1);
//得到上傳文件的擴展名
stringfileextname=filename.substring(filename.lastindexof(".") 1);
//如果需要限制上傳的文件類型,那麼可以通過文件的擴展名來判斷上傳的文件類型是否合法
system.out.println("上傳的文件的擴展名是:" fileextname);
//獲取item中的上傳文件的輸入流
inputstreamin=item.getinputstream();
//得到文件保存的名稱
stringsavefilename=makefilename(filename);
//得到文件的保存目錄
stringrealsavepath=makepath(savefilename,savepath);
//創建一個文件輸出流
fileoutputstreamout=newfileoutputstream(realsavepath "\" savefilename);
//創建一個緩沖區
bytebuffer[]=newbyte[1024];
//判斷輸入流中的數據是否已經讀完的標識intlen=0;
//循環將輸入流讀入到緩沖區當中,(len=in.read(buffer))>0就表示in裡面還有數據
while((len=in.read(buffer))>0){
//使用fileoutputstream輸出流將緩沖區的數據寫入到指定的目錄(savepath "\" filename)當中
out.write(buffer,0,len);
}
//關閉輸入流
in.close();
//關閉輸出流
out.close();//刪除處理文件上傳時生成的臨時文件//item.delete();message="文件上傳成功!";
}
}
}catch(fileuploadbase.){
e.printstacktrace();
request.setattribute("message","單個文件超出最大值!!!");
request.getrequestdispatcher("/message.jsp").forward(request,response);
return;
}catch(fileuploadbase.sizelimitexceededexceptione){
e.printstacktrace();
request.setattribute("message","上傳文件的總的大小超出限制的最大值!!!");
request.getrequestdispatcher("/message.jsp").forward(request,response);
return;
}catch(exceptione){
message="文件上傳失敗!";
e.printstacktrace();
}
request.setattribute("message",message);
request.getrequestdispatcher("/message.jsp").forward(request,response);
}
privatestringmakefilename(stringfilename){//2.jpg
//為防止文件覆蓋的現象發生,要為上傳文件產生一個唯一的文件名
returnuuid.randomuuid().tostring() "_" filename;
}
privatestringmakepath(stringfilename,stringsavepath){
//得到文件名的hashcode的值,得到的就是filename這個字元串對象在內存中的地址
inthashcode=filename.hashcode();
intdir1=hashcode&0xf;//0--15
intdir2=(hashcode&0xf0)>>4;//0-15
//構造新的保存目錄
stringdir=savepath "\" dir1 "\" dir2;//upload23upload35
if(!file.exists()){
file.mkdirs();
}
returndir;
}

publicvoiddopost(httpservletrequestrequest,httpservletresponseresponse)
throwsservletexception,ioexception{
doget(request,response);
}
}
5.編寫web.xml文件(servlet的映射配置)

uploadhandleservlet
me.gacl.web.controller.uploadhandleservlet



uploadhandleservlet
/servlet/uploadhandleservlet



註:網上看到的,出處找不到了,望見諒!!

2. java中上傳文件和表單數據提交如何質蕕

//1.form表單
//註:上傳文件的表單,需要將form標簽設置enctype="multipart/form-data"屬性,意思是將content-type設置成multipart/form-data








//2.servlet實現文件接收的功能
boolean ismultipart = servletfileupload.ismultipartcontent(request);//判斷是否是表單文件類型

diskfileitemfactory factory = new diskfileitemfactory();
servletfileupload sfu = new servletfileupload(factory);
list items = sfu.parserequest(request);//從request得到所有上傳域的列表
for(iterator iter = items.iterator();iter.hasnext();){
fileitem fileitem =(fileitem) iter.next(); if(!fileitem.isformfield()&&fileitem!=null){
//判讀不是普通表單域即是file
system.out.println("name:" fileitem.getname());
}
}

3.擴展一下springboot
@requestmapping("/xxx")
@responsebody
public string handlefileupload(@requestparam("file") multipartfile file) {
if (!file.isempty()) {
try {
bufferedoutputstream out = new bufferedoutputstream(
new fileoutputstream(new file(
file.getoriginalfilename())));
system.out.println(file.getname());
out.write(file.getbytes());
out.flush();
out.close();
} catch (filenotfoundexception e) {
e.printstacktrace();
return "上傳失敗," e.getmessage();
} catch (ioexception e) {
e.printstacktrace();
return "上傳失敗," e.getmessage();
}
return "上傳成功";
} else {
return "上傳失敗,因為文件是空的.";
}
}

3. java上傳文件格式要如何控制

文件上傳的時候,一定會打開一個文件選擇jfilechooser 他有個方法getselectedfile() 這個方法返回他選擇的文件, 他選完你就判斷下 如果此文件的後綴不是你允許的你就直接一個對話框彈回去警告下, 如果是你允許的 就執行上傳操作好了.

4. java web文件上傳步驟

java web文件上傳步驟如下:
實現 web 開發中的文件上傳功能,兩個操作:在 web 頁面添加上傳輸入項,在 servlet 中讀取上傳文件的數據並保存在本地硬碟中。
1、web 端上傳文件。在 web 頁面中添加上傳輸入項: 設置文件上傳輸入項時應注意:(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 可以獲取上傳的文件名。

5. java涓婁紶瑙嗛戦櫎浜嗘鏌ュ悗緙錛屾庝箞鍒ゆ柇鏂囦歡鏍煎紡錛屽墠8浣嶆潵鍒ゆ柇.flv鏍煎紡鏈夌殑00000018鏈夌殑464c5601鍙闈犱箞錛熸眰瑙

鍒╃敤js灝卞彲浠ュ垽鏂涓婁紶鏂囦歡鐨勫悗緙鍚嶏紝鑰屼笖璋鋒瓕鐏鐙恑e閮藉彲浠ワ紝鍙浠ュ垽鏂澶у皬鍜屽悗緙錛屼粠緗戜笂鎵炬壘錛屾壘涓嶅埌鎴戠粰浣

6. java 文件上傳:這是網頁上的jsp頁面,想要實現選擇一個cvs格式的文件上傳。

前台可以通過js過濾文件類型,如果是csv,允許上傳,如果不是,給出提示。
後台先上傳文件,如果成功,記錄成功數量,失敗記錄失敗數量。(這里記住要先上傳在解析,
外在因素可能導致多種失敗的情況。)
具體信息可以讓他下載後查看。如果想在頁面上查看,需要瀏覽器支持瀏覽csv文件。(這種方式不好)另外可以解析csv將文件內容存在資料庫後在頁面展示。根據你的需求決定實現方式吧

7. java 如何利用ckeditor實現文件(html格式或者word格式)上傳並把文件中內容保存到資料庫中

打開:
將word在後台轉換為htm,將htm內容傳到前台,在editor內面通過html方式載入該內容。。。

保存:
將editor內容保存為htm文件,將htm文件轉化為doc。。。

8. java 實現sftp上傳文件 都有哪些方式

jsch支持三種文件傳輸模式:

overwrite 完全覆蓋模式,這是jsch的默認文件傳輸模式,即如果目標文件已經存在,傳輸的文件將完全覆蓋目標文件,產生新的文件。
resume
恢復模式,如果文件已經傳輸一部分,這時由於網路或其他任何原因導致文件傳輸中斷,如果下一次傳輸相同的文件,

則會從上一次中斷的地方續傳。

append 追加模式,如果目標文件已存在,傳輸的文件將在目標文件後追加。

9. java實現文件上傳,代碼盡量簡潔~~~~~·

你說的2種方法都是很簡單的,參考網上的資料都不難做出,用io流做更是基礎中的基礎,我說下smartupload好了,有的人是直接寫在jsp上面,感覺比較亂,我一般都是寫在action裡面,打好jar包和配置後

smartupload mysmartupload = new smartupload();

//如果是struts2.0或者webwork 則是mysmartupload.initialize(servletactioncontext.getservletconfig(),servletactioncontext.getrequest(),servletactioncontext.getresponse());

mysmartupload.initialize(servlet.getservletconfig(), request,response);
mysmartupload.settotalmaxfilesize(500000);
//如果上傳任意文件不設置mysmartupload.setallowedfileslist(文件後綴名)就可以了
mysmartupload.upload();
for (int i = 0; i < mysmartupload.getfiles().getcount(); i ) {
com.jspsmart.upload.file file = mysmartupload.getfiles().getfile(i);
if (file.ismissing()) continue;
file.saveas(保存的地址 file.getfilename(),
su.save_physical);

熱點內容
phpjava交互 發布:2024-07-17 16:58:57 瀏覽:356
resin下jsp不能正常編譯 發布:2024-07-17 16:34:44 瀏覽:229
sqlserver如何切換主備伺服器 發布:2024-07-17 16:23:02 瀏覽:299
mc18伺服器ip 發布:2024-07-17 16:23:02 瀏覽:379
仙境傳說手游腳本 發布:2024-07-17 16:09:24 瀏覽:691
matlab命令窗口和新建腳本 發布:2024-07-17 15:51:26 瀏覽:375
建ftp文件夾 發布:2024-07-17 15:51:26 瀏覽:955
魔獸撿物腳本 發布:2024-07-17 15:27:56 瀏覽:130
開發ip伺服器 發布:2024-07-17 15:24:42 瀏覽:388
安卓系統視頻製作哪個好用 發布:2024-07-17 15:10:47 瀏覽:210
网站地图