日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

SmartUpload文件上传组件的使用教程

發布時間:2025/3/19 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SmartUpload文件上传组件的使用教程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

在項目中使用SmartUpload組件可以進行文件的上傳和下載操作

使用步驟

1.導入jar,進行build path操作

2.編寫文件上傳頁面,代碼如下

<form action="smartupload.jsp" method="post" enctype="multipart/form-data">

???請選擇要上傳的文件:<input type="file"?name="pic">

???<input type="submit" ?value="上傳">

??</form>

3.建立upload文件夾,文件夾在web跟目錄下:

4.實例化SmartUpload對象:

5.初始化上傳操作;

6.準備上傳

7.保存文件

代碼如下:

<%

//1.實例化SmartUpload對象

SmartUpload smart=new SmartUpload();

//2.初始化上傳操作

smart.initialize(pageContext);

//3.上傳準備

smart.upload();

//保存文件

smart.save("upload");

%>

單是現在出現一個問題,表單使用enctype="multipart/form-data"進行了二進制的封裝,無法使用request.getParameter()方法獲取值了,而是二進制的byte流了.

上傳頁面代碼如下:

?<form action="smartupload.jsp" method="post" enctype="multipart/form-data">

???姓名:<input type="text" name="uname"><br/>

???

照片:<input type="file" name="pic"><br/>

???<input type="submit" ?value="上傳">

???</form>

處理請求頁面的代碼如下:

<%

//1.實例化SmartUpload對象

SmartUpload smart=new SmartUpload();

//2.初始化上傳操作

smart.initialize(pageContext);

//3.上傳準備

smart.upload();

//保存文件

smart.save("upload");

?

request.setCharacterEncoding("UTF-8");

%>

<%="姓名是"+request.getParameter("uname") %>

使用傳統的request.getParameter("uname") 已經無法獲取到用戶輸入的信息類.

?

這個時候如果想要獲取表單中的請求值,只有使用SmartUpload中的方法getRequest.getParameter()方法進行獲取

處理頁面代碼如下:

<%

//1.實例化SmartUpload對象

SmartUpload smart=new SmartUpload();

//2.初始化上傳操作

smart.initialize(pageContext);

//3.上傳準備

smart.upload();

//保存文件

smart.save("upload");

String name=smart.getRequest().getParameter("uname");

name=new String(name.getBytes(),"UTF-8");

%>

<%="姓名是"+name %>

?

但是現在發現另一個問題,我們多次上傳一個文件,我們的文件夾里面始終就保存了一個,文件本身的覆蓋導致的,

解決方法,為我們上傳的文件自動命名

1.IP+時間戳+三位隨機數

建立一個類,專門完成文件自動命名

處理文件保存頁面的代碼如下:

<%

?

//1.實例化SmartUpload對象

SmartUpload smart=new SmartUpload();

//2.初始化上傳操作

smart.initialize(pageContext);

//3.上傳準備

smart.upload();

//獲取客戶端的 IP地址

String ip=request.getRemoteAddr();

/*IpTimeStamp是自己定義的一個類,

中有一個獲得(IP+時間戳+三位隨機數)字符串的方法*/

IpTimeStamp its=new IpTimeStamp(ip);

/*獲取文件的擴展名.smart.getFiles()是獲取我們上傳的多

個文件,getFile(0).這里面的0是下標getFileExt()是獲取文件的擴展名*/

String ext =smart.getFiles().getFile(0).getFileExt();

//拼接文件名稱

String fileName=its.getIpTimeRand()+"."+ext;

//java.io.File.separator是系統分隔符,win7"\"?這是將文件保存為什么名字

smart.getFiles().getFile(0).saveAs(this.getServletContext().getRealPath("/")+"upload"+java.io.File.separator+fileName);

String name=smart.getRequest().getParameter("uname");

name=new String(name.getBytes(),"UTF-8");

//保存文件

smart.save("upload");

%>

<%="姓名是"+name %>

如果想要限制用戶上傳文件的擴展名

假如我們一次性上傳多個文件,可以使用getFiles()來獲取我們上傳的文件getFiles()方法返回的是一個數組

smart.getFiles().getFile(0).getFileName()//獲取文件名

//matchs()String的方法,用來匹配正則表達式

通過smart.getFiles().getFile(0).getFileName().matches(“^\\w+.(jpg|gif)$”) 來對上傳的文件進行驗證,后綴匹配,form表單才能提交.

文件的批量上傳:

需要用到smart的方法,getCount();來獲取上傳來多少個文件

例如:smart.getFiles().getCount(),來獲取批量上傳的文件數量.再使用for循環來對文件進行重命名和保存的操作

?

總結

以上是生活随笔為你收集整理的SmartUpload文件上传组件的使用教程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。