最近2018中文字幕在日韩欧美国产成人片_国产日韩精品一区二区在线_在线观看成年美女黄网色视频_国产精品一区三区五区_国产精彩刺激乱对白_看黄色黄大色黄片免费_人人超碰自拍cao_国产高清av在线_亚洲精品电影av_日韩美女尤物视频网站

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
java多圖上傳代碼 如何實現(xiàn)多圖片上傳

用java完成圖片多張批量上傳的功能,還有就是后臺的應(yīng)該怎么處理上傳的照片。

環(huán)境準備

公司專注于為企業(yè)提供成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、微信公眾號開發(fā)、商城建設(shè),微信平臺小程序開發(fā),軟件按需開發(fā)網(wǎng)站等一站式互聯(lián)網(wǎng)企業(yè)服務(wù)。憑借多年豐富的經(jīng)驗,我們會仔細了解各客戶的需求而做出多方面的分析、設(shè)計、整合,為客戶設(shè)計出具風格及創(chuàng)意性的商業(yè)解決方案,創(chuàng)新互聯(lián)建站更提供一系列網(wǎng)站制作和網(wǎng)站推廣的服務(wù)。

1. 下載并安裝Tomcat(已經(jīng)有很多關(guān)于Tomcat安裝以及使用的文章,在這里不再介紹);

2. 下載File upload的jar包commons-fileupload-1.0-beta-1.jar,并將該文件拷貝到{$TOMCAT}/common/lib目錄下(其中{$TOMCAT}為Tomcat的安裝目錄);

3. 由于Fileupload子項目同時要用到另外一個項目commons-Beanutils,所以必須下載Beanutils,并將解壓后的文件commons-beanutils.jar拷貝到{$TOMCAT}/common/lib目錄下。

開發(fā)文件上傳頁面

文件上傳的界面如圖1所示。為了增加效率我們設(shè)計了三個文件域,同時上傳三個文件。

圖1 文件上傳界面

頁面的HTML代碼如下:

html

head

title文件上傳演示/title

/head

body bgcolor=“#FFFFFF”text=“#000000” leftmargin=“0”topmargin=“40”marginwidth=“0” marginheight=“0”

center

h1文件上傳演示/h1

form name=“uploadform”method=“POST” action=“save.jsp”ENCTYPE=“multipart/form-data”

table border=“1”width=“450”cellpadding=“4” cellspacing=“2”bordercolor=“#9BD7FF”

trtd width=“100%”colspan=“2”

文件1:input name=“file1”size=“40”type=“file”

/td/tr

trtd width=“100%”colspan=“2”

文件2:input name=“file2”size=“40”type=“file”

/td/tr

trtd width=“100%”colspan=“2”

文件3:input name=“file3”size=“40”type=“file”

/td/tr

/table

br/br/

table

trtd align=“center”input name=“upload” type=“submit”value=“開始上傳”//td/tr

/table

/form

/center

/body

/html

代碼中要特別注意的是黑體處。必須保證表單的ENCTYPE屬性值為multipart/form-data,這樣瀏覽器才能正確執(zhí)行上傳文件的操作。

處理上傳文件信息

由于本文主要是講述如何使用Commons-fileupload,所以為了便于修改、調(diào)試,上傳文件的保存使用一個JSP文件來進行處理。我們將瀏覽器上傳來的所有文件保存在一個指定目錄下并在頁面上顯示所有上傳文件的詳細信息。保存頁面處理結(jié)果見圖2所示。

圖2 保存頁面

下面來看看save.jsp的代碼:

%

/**

* 演示文件上傳的處理

* @author a href=“mailto:[email protected]”Winter Lau/a

* @version $Id: save.jsp,v 1.00 2003/03/01 10:10:15

*/

%

%@ page language=“java”contentType=“text/html;charset=GBK”%

%@ page import=“java.util.*”%

%@ page import=“org.apache.commons.fileupload.*”%

html

head

title保存上傳文件/title

/head

%

String msg = “”;

FileUpload fu = new FileUpload();

// 設(shè)置允許用戶上傳文件大小,單位:字節(jié)

fu.setSizeMax(10000000);

// maximum size that will be stored in memory?

// 設(shè)置最多只允許在內(nèi)存中存儲的數(shù)據(jù),單位:字節(jié)

fu.setSizeThreshold(4096);

// 設(shè)置一旦文件大小超過getSizeThreshold()的值時數(shù)據(jù)存放在硬盤的目錄

fu.setRepositoryPath(“C:\\TEMP”);

//開始讀取上傳信息

List fileItems = fu.parseRequest(request);

%

body bgcolor=“#FFFFFF”text=“#000000” leftmargin=“0”topmargin=“40”marginwidth=“0” marginheight=“0”

font size=“6”color=“blue”文件列表:/font

center

table cellpadding=0 cellspacing=1 border=1 width=“100%”

tr

td bgcolor=“#008080”文件名/td

td bgcolor=“#008080”大小/td

/tr

%

// 依次處理每個上傳的文件

Iterator iter = fileItems.iterator();

while (iter.hasNext()) {

FileItem item = (FileItem) iter.next();

//忽略其他不是文件域的所有表單信息

if (!item.isFormField()) {

String name = item.getName();

long size = item.getSize();

if((name==null||name.equals(“”)) size==0)

continue;

%

tr

td%=item.getName()%/td

td%=item.getSize()%/td

/tr

%

//保存上傳的文件到指定的目錄

name = name.replace(‘:’,‘_’);

name = name.replace(‘\\’,‘_’);

item.write(“F:\\”+ name);

}

}

%

/table

br/br/

a href=“upload.html”返回上傳頁面/a

/center

/body

/html

在這個文件中需要注意的是FileUpload對象的一些參數(shù)值的意義,如下面代碼所示的三個參數(shù)sizeMax、sizeThreshold、repositoryPath:

FileUpload fu = new FileUpload();

// 設(shè)置允許用戶上傳文件大小,單位:字節(jié)

fu.setSizeMax(10000000);

// maximum size that will be stored in memory?

// 設(shè)置最多只允許在內(nèi)存中存儲的數(shù)據(jù),單位:字節(jié)

fu.setSizeThreshold(4096);

// 設(shè)置一旦文件大小超過getSizeThreshold()的值時數(shù)據(jù)存放在硬盤的目錄

fu.setRepositoryPath(“C:\\TEMP”);

這3個參數(shù)的意義分別為:

SizeMax 用來設(shè)置上傳文件大小的最大值,一旦用戶上傳的文件大小超過該值時將會拋出一個FileUploadException異常,提示文件太大;

SizeThreshold 設(shè)置內(nèi)存中緩沖區(qū)的大小,一旦文件的大小超過該值的時候,程序會自動將其它數(shù)據(jù)存放在repositoryPath指定的目錄下作為緩沖。合理設(shè)置該參數(shù)的值可以保證服務(wù)器穩(wěn)定高效的運行;

RepositoryPath 指定緩沖區(qū)目錄。

使用注意事項

從實際應(yīng)用的結(jié)果來看該模塊能夠穩(wěn)定高效的工作。其中參數(shù)SizeThreshold的值至關(guān)重要,設(shè)置太大會占用過多的內(nèi)存,設(shè)置太小會頻繁使用硬盤作為緩沖以致犧牲性能。因此,設(shè)置該值時要根據(jù)用戶上傳文件大小分布情況來設(shè)定。例如大部分文件大小集中在100KB左右,則可以使用100KB作為該參數(shù)的值,當然了再大就不合適了。使用commons-fileupload來處理HTTP文件上傳的功能模塊很小,但是值得研究的東西很多。

請問用Java 如何實現(xiàn)圖片上傳功能 ?

我有一段上傳圖片的代碼,并且可以根據(jù)實際,按月或按天等,生成存放圖片的文件夾

首先在JSP上放一個FILE的標簽這些我都不說了,你也一定明白,我直接把處理過程給你發(fā)過去

我把其中存到數(shù)據(jù)庫中的內(nèi)容刪除了,你改一下就能用

/**

*

* 上傳圖片

* @param servlet

* @param request

* @param response

* @return

* @throws Exception

*/

//這里我是同步上傳的,你隨意

public synchronized String importPic(HttpServlet servlet, HttpServletRequest request,HttpServletResponse response) throws Exception {

SimpleDateFormat formatDate = new SimpleDateFormat("yyyyMM");

Date nowtime=new Date();

String formatnowtime=formatDate.format(nowtime);

File root = new File(request.getRealPath("/")+"uploadfile/images/"+formatnowtime+"/"); //應(yīng)保證在根目錄中有此目錄的存在 如果沒有,下面則上創(chuàng)建新的文件夾

if(!root.isDirectory())

{

System.out.println("創(chuàng)建新文件夾成功"+formatnowtime);

root.mkdir();

}

int returnflag = 0;

SmartUpload mySmartUpload =new SmartUpload();

int file_size_max=1024000;

String ext="";

String url="uploadfile/images/"+formatnowtime+"/";

// 只允許上載此類文件

try{

// 初始化

mySmartUpload.initialize(servlet.getServletConfig(),request,response);

mySmartUpload.setAllowedFilesList("jpg,gif,bmp,jpeg,png,JPG");

// 上載文件

mySmartUpload.upload();

} catch (Exception e){

response.sendRedirect()//返回頁面

}

com.jspsmart.upload.File myFile = mySmartUpload.getFiles().getFile(0);

if (myFile.isMissing()){ //沒有選擇圖片做提示!

returnflag = 3;

}else{

String myFileName=myFile.getFileName(); //取得上載的文件的文件名

ext= myFile.getFileExt(); //取得后綴名

if(ext.equals("jpg")||ext.equals("gif")||ext.equals("bmp")||ext.equals("jpeg")||ext.equals("png")||ext.equals("JPG")){ //jpeg,png不能上傳!)

int file_size=myFile.getSize(); //取得文件的大小

String saveurl="";

if(file_sizefile_size_max){

try{

//我上面說到,把操作數(shù)據(jù)庫的代友刪除了,這里就應(yīng)該是判斷,你的圖片是不是已經(jīng)存在了,存在要怎么處理,不存在要怎么處了,就是你的事了 }

//更改文件名,取得當前上傳時間的毫秒數(shù)值

Calendar calendar = Calendar.getInstance();

//String filename = String.valueOf(calendar.getTimeInMillis());

String did = contractBean.getMaxSeq("MULTIMEDIA_SEQ");

String filename = did;

String flag = "0";

String path = request.getRealPath("/")+url;

String ename = myFile.getFileExt();

//.toLowerCase()轉(zhuǎn)換大小寫

saveurl=request.getRealPath("/")+url;

saveurl+=filename+"."+ext; //保存路徑

myFile.saveAs(saveurl,mySmartUpload.SAVE_PHYSICAL);

//將圖片信息插入到數(shù)據(jù)庫中

// ------上傳完成,開始生成縮略圖-----

java.io.File file = new java.io.File(saveurl); //讀入剛才上傳的文件

String newurl=request.getRealPath("/")+url+filename+"_min."+ext; //新的縮略圖保存地址

Image src = javax.imageio.ImageIO.read(file); //構(gòu)造Image對象

float tagsize=200;

int old_w=src.getWidth(null);

int old_h=src.getHeight(null);

int new_w=0;

int new_h=0;

int tempsize;

float tempdouble;

if(old_wold_h){

tempdouble=old_w/tagsize;

}else{

tempdouble=old_h/tagsize;

}

// new_w=Math.round(old_w/tempdouble);

// new_h=Math.round(old_h/tempdouble);//計算新圖長寬

new_w=150;

new_h=110;//計算新圖長寬

BufferedImage tag = new BufferedImage(new_w,new_h,BufferedImage.TYPE_INT_RGB);

tag.getGraphics().drawImage(src,0,0,new_w,new_h,null); //繪制縮小后的圖

FileOutputStream newimage=new FileOutputStream(newurl); //輸出到文件流

JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(newimage);

encoder.encode(tag); //近JPEG編碼

newimage.close();

returnflag = 1;

}else{

returnflag = 0;

System.out.println("('上傳文件大小不能超過"+(file_size_max/1000)+"K');");

}

}else{

returnflag = 2;

}

}

response.sendRedirect();

return "11";

}

用java如何一次性上傳多張圖片到數(shù)據(jù)庫

你說的這個問題,其實是表的設(shè)計問題。

只要在t_b中,設(shè)計列為3列即可。

id

,

t_a_id

,

picture

添加多個圖片,不過是sql、語句。

最簡單的辦法,是利用for()循環(huán),如:

for(int

i

=

0;i圖片數(shù);i++){

//你的sql操作語句如。

//insert

圖片i

into

t_b..

}

分給偶吧。。

^

^!


文章題目:java多圖上傳代碼 如何實現(xiàn)多圖片上傳
文章鏈接:http://fisionsoft.com.cn/article/hpppsd.html