日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

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

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Struts實現(xiàn)圖片上傳數(shù)據(jù)庫操作方法 (struts 上傳圖片到數(shù)據(jù)庫)

隨著互聯(lián)網(wǎng)的快速發(fā)展,圖片成為了傳遞信息和表達情感的重要工具。當我們需要將圖片上傳到網(wǎng)站時,使用數(shù)據(jù)庫進行存儲已成為常見的方法。本文將介紹如何使用Struts框架實現(xiàn)圖片上傳并將其存入數(shù)據(jù)庫。

創(chuàng)新互聯(lián)建站長期為上1000家客戶提供的網(wǎng)站建設服務,團隊從業(yè)經(jīng)驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為白堿灘企業(yè)提供專業(yè)的成都網(wǎng)站建設、網(wǎng)站制作,白堿灘網(wǎng)站改版等技術服務。擁有10余年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。

一、環(huán)境搭建

我們需要搭建一個基本的開發(fā)環(huán)境。以下是所需的軟件和工具:

– JDK 1.8或以上

– Eclipse IDE

– Struts 2框架

在完成安裝和配置后,我們可以開始編寫我們的程序。

二、編寫代碼

1.創(chuàng)建項目

在Eclipse中創(chuàng)建一個新的動態(tài)Web項目,并將它命名為“StrutsImageUpload”。

2.添加Struts配置文件

在src目錄下創(chuàng)建一個名為“struts.xml”的Struts配置文件。在該文件中添加以下內容:

“`

“http://struts.apache.org/dtds/struts-2.3.dtd”>

image/jpeg,image/png,image/gif

1000000

/result.jsp

/error.jsp

“`

該配置文件包含了一個Struts動作“ImageUploadAction”,該動作接收上傳的文件,并存儲它們。

3.添加Struts動作

在src目錄下創(chuàng)建一個名為“ImageUploadAction.java”的類,該類實現(xiàn)了Struts的Action接口,并定義了一個名為“save”的方法,用于存儲上傳的文件到數(shù)據(jù)庫中。代碼如下:

“`

package com.struts.action;

import java.io.File;

import org.apache.commons.io.FileUtils;

import org.apache.struts2.convention.annotation.Action;

import org.apache.struts2.convention.annotation.InterceptorRef;

import org.apache.struts2.convention.annotation.Result;

import org.apache.struts2.convention.annotation.Results;

import com.opensymphony.xwork2.ActionSupport;

@Action(“upload”)

@InterceptorRef(“defaultStack”)

@Results({

@Result(name=”success”, location=”/result.jsp”),

@Result(name=”error”, location=”/error.jsp”)

})

public class ImageUploadAction extends ActionSupport {

private static final long serialVersionUID = 1L;

private File fileUpload;

private String fileUploadContentType;

private String fileUploadFileName;

public String save() {

byte[] fileBytes = null;

try {

fileBytes = FileUtils.readFileToByteArray(fileUpload);

} catch (Exception e) {

e.printStackTrace();

}

if (fileBytes != null) {

//存儲文件到數(shù)據(jù)庫

return SUCCESS;

} else {

return ERROR;

}

}

public File getFileUpload() {

return fileUpload;

}

public void setFileUpload(File fileUpload) {

this.fileUpload = fileUpload;

}

public String getFileUploadContentType() {

return fileUploadContentType;

}

public void setFileUploadContentType(String fileUploadContentType) {

this.fileUploadContentType = fileUploadContentType;

}

public String getFileUploadFileName() {

return fileUploadFileName;

}

public void setFileUploadFileName(String fileUploadFileName) {

this.fileUploadFileName = fileUploadFileName;

}

}

“`

該類定義了一個名為“fileUpload”的屬性,它用于接收上傳的文件。在“save”方法中,我們使用“FileUtils”類將上傳的文件轉換為字節(jié)數(shù)組,并將字節(jié)數(shù)組存儲到數(shù)據(jù)庫中。

4.添加數(shù)據(jù)庫訪問類

創(chuàng)建一個名為“DatabaseAccess.java”的類,用于連接和操作數(shù)據(jù)庫。以下是該類的代碼:

“`

package com.struts.util;

import java.io.ByteArrayOutputStream;

import java.io.InputStream;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

public class DatabaseAccess {

private static final String JDBC_DRIVER = “com.mysql.jdbc.Driver”;

private static final String DB_URL = “jdbc:mysql://localhost:3306/strutsimageupload”;

private static final String USER = “root”;

private static final String PASSWORD = “123456”;

private Connection connection = null;

private PreparedStatement preparedStatement = null;

public DatabaseAccess() {

try {

Class.forName(JDBC_DRIVER);

connection = DriverManager.getConnection(DB_URL, USER, PASSWORD);

} catch (Exception e) {

e.printStackTrace();

}

}

public boolean insertImage(String fileName, byte[] fileBytes) {

boolean result = false;

try {

preparedStatement = connection.prepareStatement(“INSERT INTO images (name, data) VALUES (?,?)”);

preparedStatement.setString(1, fileName);

preparedStatement.setBytes(2, fileBytes);

result = preparedStatement.executeUpdate() > 0;

preparedStatement.close();

} catch (Exception e) {

e.printStackTrace();

}

return result;

}

public byte[] getImageByName(String fileName) {

byte[] result = null;

try {

preparedStatement = connection.prepareStatement(“SELECT * FROM images WHERE name=?”);

preparedStatement.setString(1, fileName);

ResultSet resultSet = preparedStatement.executeQuery();

while (resultSet.next()) {

InputStream inputStream = resultSet.getBinaryStream(“data”);

ByteArrayOutputStream outputStream = new ByteArrayOutputStream();

byte[] buffer = new byte[1024];

int len;

while ((len = inputStream.read(buffer)) != -1) {

outputStream.write(buffer, 0, len);

}

result = outputStream.toByteArray();

inputStream.close();

outputStream.close();

}

preparedStatement.close();

} catch (Exception e) {

e.printStackTrace();

}

return result;

}

}

“`

該類定義了兩個方法:“insertImage”和“getImageByName”,用于將數(shù)據(jù)插入數(shù)據(jù)庫和從數(shù)據(jù)庫中檢索數(shù)據(jù)。

5.添加P文件

在WebContent目錄下創(chuàng)建一個名為“upload.jsp”的文件,該文件包含了一個表單,用于向服務器上傳文件。以下是該文件的代碼:

“`

Image Upload

“`

在WebContent目錄下創(chuàng)建一個名為“result.jsp”的文件,該文件用于顯示圖片。以下是該文件的代碼:

“`

Image Result

http://www.5511xx.com/article/djhoihs.html