av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

使用Servlet實(shí)現(xiàn)數(shù)據(jù)庫(kù)圖片上傳(servlte數(shù)據(jù)庫(kù)上傳圖片)

隨著互聯(lián)網(wǎng)的快速發(fā)展,圖片的應(yīng)用越來(lái)越廣泛,如何將圖片上傳到數(shù)據(jù)庫(kù)已成為當(dāng)前開(kāi)發(fā)中必備的技能之一。本文將介紹如何,并為大家詳細(xì)展示實(shí)現(xiàn)過(guò)程。

一、搭建環(huán)境

本文的代碼是基于Eclipse JEE版本來(lái)實(shí)現(xiàn)的,因此需要先下載并安裝相應(yīng)的軟件環(huán)境。

二、創(chuàng)建項(xiàng)目

創(chuàng)建一個(gè)新的Web項(xiàng)目,設(shè)置JRE版本,項(xiàng)目構(gòu)建技術(shù)為Maven,并添加相應(yīng)的依賴(lài),在pom.xml文件中添加以下代碼:

“`xml

javax.servlet

javax.servlet-api

3.1.0

provided

org.apache.tomcat

tomcat-dbcp

9.0.0.M4

provided

commons-fileupload

commons-fileupload

1.3.1

compile

commons-io

commons-io

2.4

compile

mysql

mysql-connector-java

5.1.26

provided

org.apache.poi

poi

3.17

org.apache.poi

poi-ooxml

3.17

org.apache.poi

poi-ooxml-schemas

3.17

“`

三、創(chuàng)建數(shù)據(jù)庫(kù)

創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)表,用于存儲(chǔ)上傳的圖片,包含以下字段:

id:作為主鍵,自增長(zhǎng)

file_name:圖片的文件名

content_type:圖片的類(lèi)型

file_size:圖片的大小

data:圖片的字節(jié)流

四、編寫(xiě)上傳Servlet

編寫(xiě)上傳Servlet,上傳過(guò)程中需要進(jìn)行以下處理:

獲取上傳文件的大小及類(lèi)型,如果不符合規(guī)則,直接返回錯(cuò)誤信息;

將上傳文件轉(zhuǎn)化為字節(jié)流,將字節(jié)流存入數(shù)據(jù)庫(kù)中。

以下是具體實(shí)現(xiàn)的代碼:

上傳文件:

“`java

protected void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

response.setContentType(“text/html;charset=UTF-8”);

PrintWriter out = response.getWriter();

boolean isMultipart = ServletFileUpload.isMultipartContent(request);

if (!isMultipart) {

out.println(“文件未上傳!”);

return;

}

String uploadFilePath = request.getServletContext().getRealPath(“/”) + “upload/”;

File uploadFolder = new File(uploadFilePath);

if (!uploadFolder.exists()) {

uploadFolder.mkdirs();

}

DiskFileItemFactory factory = new DiskFileItemFactory();

factory.setRepository(uploadFolder);

ServletFileUpload upload = new ServletFileUpload(factory);

upload.setHeaderEncoding(“UTF-8”);

upload.setSizeMax(MAX_UPLOAD_SIZE);

List items = null;

try {

items = upload.parseRequest(request);

} catch (FileUploadException e) {

e.printStackTrace();

}

if (items == null) {

out.write(“文件未上傳!”);

return;

}

for (FileItem item : items) {

if (item.isFormField()) {

continue;

}

String fileName = item.getName();

if (StringUtils.isEmpty(fileName)) {

continue;

}

if (StringUtils.indexOf(fileName, “/”) >= 0) {

fileName = StringUtils.substringAfterLast(fileName, “/”);

}

if (StringUtils.indexOf(fileName, “\\”) >= 0) {

fileName = StringUtils.substringAfterLast(fileName, “\\”);

}

String contentType = item.getContentType();

if (StringUtils.isEmpty(contentType)) {

continue;

}

InputStream inputStream = null;

try {

long fileSize = item.getSize();

if (StringUtils.isEmpty(fileName) || fileSize > MAX_UPLOAD_SIZE) {

return;

}

byte[] fileBuffer = new byte[(int) fileSize];

inputStream = item.getInputStream();

inputStream.read(fileBuffer, 0, (int) fileSize);

Connection conn = getConnection();

PreparedStatement pstmt = conn.prepareStatement(INSERT_QUERY);

pstmt.setString(1, fileName);

pstmt.setString(2, contentType);

pstmt.setLong(3, fileSize);

pstmt.setBytes(4, fileBuffer);

pstmt.executeUpdate();

if (inputStream != null) {

inputStream.close();

}

if (pstmt != null) {

pstmt.close();

}

if (conn != null) {

conn.close();

}

} catch (SQLException ex) {

ex.printStackTrace();

} catch (Exception e) {

e.printStackTrace();

}

out.print(“文件上傳成功!”);

}

}

“`

五、

本文介紹了如何,并通過(guò)詳細(xì)的代碼展示了實(shí)現(xiàn)過(guò)程。如果你也想在項(xiàng)目中實(shí)現(xiàn)圖片上傳功能,可以根據(jù)本文的步驟進(jìn)行操作,相信能夠順利實(shí)現(xiàn)。

相關(guān)問(wèn)題拓展閱讀:

  • c#如何將圖片保存到mysql數(shù)據(jù)庫(kù),再讀取出來(lái)?

c#如何將圖片保存到mysql數(shù)據(jù)庫(kù),再讀取出來(lái)?

直接將圖片以二進(jìn)制流的方式寫(xiě)入到mysql數(shù)據(jù)庫(kù)中,由于數(shù)據(jù)量大,必然會(huì)導(dǎo)致服務(wù)器的數(shù)據(jù)庫(kù)負(fù)載很大

我的建議: 采取將圖片存儲(chǔ)在物理磁盤(pán) 將相對(duì)路徑存儲(chǔ)在數(shù)據(jù)庫(kù)中 這樣會(huì)減小數(shù)據(jù)庫(kù)負(fù)載

附上  “上傳圖片” 代碼:

/// 

/// 上傳圖片

/// 

    升森巧    /// 文件框名稱(chēng)

/// 上傳文件路徑,url

/// 文件的更大值,單位為字節(jié)

/// 類(lèi)型:1表示圖片;0表示所有文件

      春沖  /// 

public static string upfiles(System.Web.UI.HtmlControls.HtmlInputFile files, string paths, long fmax, string ftype)

{

//files 文件上傳組件的名稱(chēng);paths 要上傳到的目錄;fmax是上傳文件更大值;ftype是上傳文件的類(lèi)型

//默認(rèn)上傳文件更大值100k,文件類(lèi)型為所有文件

//1為圖片jpg or gif;0為所有文件

//如果文件大于設(shè)定值,返回代碼0

//如果文件類(lèi)型錯(cuò)誤,返回代碼1

//初始化

long fileMax =;

string fileType = “0”;

string fileTypet = “”;

fileMax = fmax;

fileType = ftype;

if (files.PostedFile.ContentLength > fileMax)

吵鍵   {

  return “0”;

  //返回錯(cuò)誤代碼,結(jié)束程序

}

fileTypet = System.IO.Path.GetExtension(files.PostedFile.FileName).ToLower();

if (fileType == “1”)

{

  if (fileTypet != “.jpg” && fileTypet != “.jpeg” && fileTypet != “.gif”)

  {

      return “1”;

      //返回錯(cuò)誤代碼,結(jié)束程序

  }

}

string destdir = System.Web.HttpContext.Current.Server.MapPath(paths);

string filename = CFun.RandomWord() + fileTypet;

string destpath = System.IO.Path.Combine(destdir, filename);

//檢查是否有名稱(chēng)重復(fù),如果重復(fù)就在前面加從0開(kāi)始的數(shù)字

int i = 0;

string tempfilename = filename;

while (System.IO.File.Exists(destpath))

{

  //有重復(fù)

  tempfilename = i.ToString() + filename;

  destpath = System.IO.Path.Combine(destdir, tempfilename);

  i = i + 1;

}

//沒(méi)有重復(fù),保存文件

files.PostedFile.SaveAs(destpath);

//返回文件名稱(chēng)

return tempfilename;

}

servlte數(shù)據(jù)庫(kù)上傳圖片的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于servlte數(shù)據(jù)庫(kù)上傳圖片,使用Servlet實(shí)現(xiàn)數(shù)據(jù)庫(kù)圖片上傳,c#如何將圖片保存到mysql數(shù)據(jù)庫(kù),再讀取出來(lái)?的信息別忘了在本站進(jìn)行查找喔。

香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開(kāi)通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過(guò)10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開(kāi)發(fā)經(jīng)驗(yàn)。專(zhuān)業(yè)提供云主機(jī)、虛擬主機(jī)、域名注冊(cè)、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。


當(dāng)前名稱(chēng):使用Servlet實(shí)現(xiàn)數(shù)據(jù)庫(kù)圖片上傳(servlte數(shù)據(jù)庫(kù)上傳圖片)
網(wǎng)站網(wǎng)址:http://uogjgqi.cn/article/djpcdjh.html
掃二維碼與項(xiàng)目經(jīng)理溝通

我們?cè)谖⑿派?4小時(shí)期待你的聲音

解答本文疑問(wèn)/技術(shù)咨詢(xún)/運(yùn)營(yíng)咨詢(xún)/技術(shù)建議/互聯(lián)網(wǎng)交流