真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

java多圖上傳代碼 如何實(shí)現(xiàn)多圖片上傳

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

環(huán)境準(zhǔn)備

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

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

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

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

開(kāi)發(fā)文件上傳頁(yè)面

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

圖1 文件上傳界面

頁(yè)面的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=“開(kāi)始上傳”//td/tr

/table

/form

/center

/body

/html

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

處理上傳文件信息

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

圖2 保存頁(yè)面

下面來(lái)看看save.jsp的代碼:

%

/**

* 演示文件上傳的處理

* @author a href=“mailto:winter.lau@163.com”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)存中存儲(chǔ)的數(shù)據(jù),單位:字節(jié)

fu.setSizeThreshold(4096);

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

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

//開(kāi)始讀取上傳信息

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

%

// 依次處理每個(gè)上傳的文件

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”返回上傳頁(yè)面/a

/center

/body

/html

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

FileUpload fu = new FileUpload();

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

fu.setSizeMax(10000000);

// maximum size that will be stored in memory?

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

fu.setSizeThreshold(4096);

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

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

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

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

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

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

使用注意事項(xiàng)

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

請(qǐng)問(wèn)用Java 如何實(shí)現(xiàn)圖片上傳功能 ?

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

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

我把其中存到數(shù)據(jù)庫(kù)中的內(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)保證在根目錄中有此目錄的存在 如果沒(méi)有,下面則上創(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()//返回頁(yè)面

}

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

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

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{

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

//更改文件名,取得當(dāng)前上傳時(shí)間的毫秒數(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)換大小寫(xiě)

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

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

myFile.saveAs(saveurl,mySmartUpload.SAVE_PHYSICAL);

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

// ------上傳完成,開(kāi)始生成縮略圖-----

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對(duì)象

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);//計(jì)算新圖長(zhǎng)寬

new_w=150;

new_h=110;//計(jì)算新圖長(zhǎng)寬

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("('上傳文件大小不能超過(guò)"+(file_size_max/1000)+"K');");

}

}else{

returnflag = 2;

}

}

response.sendRedirect();

return "11";

}

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

你說(shuō)的這個(gè)問(wèn)題,其實(shí)是表的設(shè)計(jì)問(wèn)題。

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

id

,

t_a_id

,

picture

添加多個(gè)圖片,不過(guò)是sql、語(yǔ)句。

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

for(int

i

=

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

//你的sql操作語(yǔ)句如。

//insert

圖片i

into

t_b..

}

分給偶吧。。

^

^!


當(dāng)前名稱:java多圖上傳代碼 如何實(shí)現(xiàn)多圖片上傳
地址分享:http://weahome.cn/article/hpppsd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部