欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

java代碼多圖片上傳 Java中圖片文件上傳怎么實現(xiàn)

java圖片批量上傳代碼?

用struts也可以實現(xiàn) 多文件上傳

我們提供的服務(wù)有:成都網(wǎng)站制作、網(wǎng)站設(shè)計、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、彰武ssl等。為上1000家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的彰武網(wǎng)站制作公司

下面是我寫的代碼,作為參考!

/*文件目錄*/

public static String [] fileArray={

"logo.png",

"index.swf",

"OEMInfo.txt",

"favicon.ico"};

/**

* @author Caoshun

* @see 接收并保存文件

* */

public static void receiveAndSaveAllFileByPath(ActionForm form,String rootPath1,String rootPath2){

String fileName="";

//獲取表單中的文件資源

HashtableObject, Object files = form.getMultipartRequestHandler().getFileElements();

//遍歷文件,并且循環(huán)保存

//當前處理文件序號

int file_num=1;

for (EnumerationObject e = files.keys(); e.hasMoreElements();) {

/*根據(jù)處理的當前文件下標,確定文件名*/

fileName=fileArray[file_num-1];

FormFile file = (FormFile) files.get((String) e.nextElement());

if (file != null file.getFileSize() 0) {

try {

//使用formfile.getInputStream()來獲取一個文件的輸入流進行保存。

//文件名

//String fileName = file.getFileName();

//System.out.println("debug in AddEnterpriceAction.java on line 152 fileName is : "+fileName);

//文件大小

//int fileSize = file.getFileSize();

//文件流

InputStream is = file.getInputStream();

//將輸入流保存到文件

//String rootPath = this.servlet.getServletContext().getRealPath("files");

//往cn中寫入

File rf = new File(rootPath1);

FileOutputStream fos = null;

fos = new FileOutputStream(new File(rf, fileName));

byte[] b = new byte[10240];

int real = 0;

real = is.read(b);

while (real 0) {

fos.write(b, 0, real);

real = is.read(b);

}

//往en中寫入

File rf2 = new File(rootPath2);

InputStream is2 = file.getInputStream();

FileOutputStream fos2 = null;

fos2 = new FileOutputStream(new File(rf2, fileName));

byte[] b2 = new byte[10240];

int real2 = 0;

real2 = is2.read(b2);

while (real2 0) {

fos2.write(b2, 0, real2);

real2 = is2.read(b2);

}

//關(guān)閉文件流

fos.close();

is.close();

fos2.close();

is2.close();

} catch (RuntimeException e1) {

e1.printStackTrace();

} catch (Exception ee) {

ee.printStackTrace();

}

file.destroy();

}

file_num++;

}

}

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

環(huán)境準備

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: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)存中存儲的數(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如何一次性上傳多張圖片到數(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代碼多圖片上傳 Java中圖片文件上傳怎么實現(xiàn)
當前網(wǎng)址:http://chinadenli.net/article48/hijcep.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google網(wǎng)站設(shè)計微信小程序網(wǎng)站排名網(wǎng)站策劃

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

綿陽服務(wù)器托管