新聞中心
隨著互聯(lián)網(wǎng)的飛速發(fā)展,越來越多的信息在網(wǎng)上進(jìn)行傳輸和共享,如何讓用戶快速、方便地上傳和下載文件成為了不可忽視的問題。而在網(wǎng)站開發(fā)中,P作為一種熱門的Web開發(fā)語言,被廣泛應(yīng)用于網(wǎng)站開發(fā)和文件上傳等功能實(shí)現(xiàn)中。

創(chuàng)新互聯(lián)是專業(yè)的洪江管理區(qū)網(wǎng)站建設(shè)公司,洪江管理區(qū)接單;提供做網(wǎng)站、成都網(wǎng)站建設(shè),網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行洪江管理區(qū)網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!
本文將介紹如何利用功能,為網(wǎng)站的安全性和穩(wěn)定性提供保障。
一、前置條件
在實(shí)現(xiàn)數(shù)據(jù)庫文件上傳之前,需要確定以下的前置條件:
1. 數(shù)據(jù)庫環(huán)境:需要有一個可用的數(shù)據(jù)庫環(huán)境,可選擇MySql或Oracle等。同時,需要創(chuàng)建一個用于存儲文件信息的表。
2. 文件上傳組件:需要選擇一個文件上傳組件,本文選取的是apache的commons-fileupload組件。
3. P環(huán)境:需要建立一個P開發(fā)環(huán)境,可以將P文件部署在Tomcat或者Jetty等服務(wù)器上。
二、實(shí)現(xiàn)文件上傳功能
在確定了前置條件后,就可以開始實(shí)現(xiàn)文件上傳功能了。下文將以實(shí)現(xiàn)一個簡單的上傳功能為例,詳細(xì)介紹實(shí)現(xiàn)步驟。
1. 引入文件上傳組件
在jsp文件中引入文件上傳組件,如下所示:
“`
“`
2. 定義上傳表單
在jsp頁面中定義一個表單,包含上傳文件的相關(guān)信息,如下所示:
“`
請選擇要上傳的文件:
文件描述:
“`
其中,enctype為上傳文件的類型,需設(shè)置為”multipart/form-data”。
3. 處理文件上傳
在jsp頁面中實(shí)現(xiàn)文件上傳處理的代碼,如下所示:
“`
String fileUploadPath=”C:\\upload\\”; //設(shè)置上傳目錄
String fileName=null; //文件名
File tmpFile=null; //臨時文件
DiskFileItemFactory factory=new DiskFileItemFactory(); //設(shè)置緩沖區(qū)大小和臨時文件路徑
factory.setSizeThreshold(1024 * 1024); //設(shè)置緩沖區(qū)大小為1M
factory.setRepository(new File(System.getProperty(“java.io.tmpdir”)));//設(shè)置臨時文件保存的路徑
ServletFileUpload upload=new ServletFileUpload(factory); //創(chuàng)建解析器
upload.setHeaderEncoding(“UTF-8”); //解決上傳文件命名的中文亂碼問題
if(!ServletFileUpload.isMultipartContent(request)){ //判斷請求是否有文件上傳
return;
}
try {
List items=upload.parseRequest(request); //解析請求
for(FileItem item:items){
if(item.isFormField()){
String name=item.getFieldName();
String value=item.getString(“UTF-8”); //設(shè)置編碼
System.out.println(name+”=”+value);
}
else{ //上傳文件處理
fileName=item.getName();
if(fileName==null||fileName.trim().equals(“”)){
continue;
}
fileName=fileName.substring(fileName.lastIndexOf(“\\”)+1); //去掉絕對路徑
fileName=UUID.randomUUID().toString()+”_”+fileName; //生成新的文件名
tmpFile=new File(fileUploadPath+fileName); //創(chuàng)建臨時文件
item.write(tmpFile);
System.out.println(“上傳成功”+fileName+”到”+fileUploadPath);
}
}
} catch (FileUploadException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
“`
上述代碼中,定義了上傳文件的路徑、上傳文件的名稱、臨時文件路徑等相關(guān)信息,并使用DiskFileItemFactory類創(chuàng)建一個緩沖區(qū),使用ServletFileUpload類解析HTTP請求中的文件流。接著,通過List items=upload.parseRequest(request)方法解析HTTP請求中的各個文件項(xiàng)。如果該文件項(xiàng)是表單數(shù)據(jù),就獲取該文件項(xiàng)的屬性值;如果該文件項(xiàng)是文件數(shù)據(jù),就獲取文件名和文件大小等屬性信息,生成一個臨時文件,最后將文件保存到指定路徑中。
4. 存儲文件信息到數(shù)據(jù)庫中
在上傳文件成功后,需要將文件信息存儲到數(shù)據(jù)庫中。這里需要先在數(shù)據(jù)庫中創(chuàng)建一個表,用于存儲文件信息。同時,需要在P文件中加入相應(yīng)的代碼,將文件信息存儲到數(shù)據(jù)庫中,如下所示:
“`
String description=request.getParameter(“description”); //獲取文件描述信息
String sql=”insert into file_upload(file_name,real_name,file_size,description) values(?,?,?,?)”; //定義SQL語句
try {
Class.forName(“com.mysql.jdbc.Driver”); //加載數(shù)據(jù)庫驅(qū)動
Connection conn=DriverManager.getConnection(“jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8”, “root”, “123456”); //創(chuàng)建數(shù)據(jù)庫連接
PreparedStatement pstmt=conn.prepareStatement(sql); //創(chuàng)建SQL語句執(zhí)行器
pstmt.setString(1, fileName); //設(shè)置參數(shù)
pstmt.setString(2, tmpFile.getAbsolutePath());
pstmt.setLong(3, tmpFile.length());
pstmt.setString(4, description);
pstmt.executeUpdate(); //執(zhí)行SQL語句,將文件信息存儲到數(shù)據(jù)庫中
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
“`
上述代碼中,通過獲取用戶上傳文件的描述信息,將文件信息存儲到數(shù)據(jù)庫中,實(shí)現(xiàn)了文件信息的持久化存儲。
三、
本文介紹了如何利用功能,通過使用apache的commons-fileupload組件實(shí)現(xiàn)文件上傳,并將文件信息持久化存儲到數(shù)據(jù)庫中,為網(wǎng)站的安全性提供了保障。
成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián),建站經(jīng)驗(yàn)豐富以策略為先導(dǎo)10多年以來專注數(shù)字化網(wǎng)站建設(shè),提供企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計,響應(yīng)式網(wǎng)站制作,設(shè)計師量身打造品牌風(fēng)格,熱線:028-86922220用jsp+servlet+javabean上傳圖片到數(shù)據(jù)庫中,不是存路徑
%@ page language=”java”源明粗%>
顯示圖片
0)
response.getOutputStream().write(b,0,len);
in.close();
rs.close(); javabean上傳實(shí)例package com.brainysoftware.web;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.ServletInputStream;
import java.util.Dictionary;
import java.util.Hashtable;
import java.io.PrintWriter;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
public class FileUploadBean {
private String savePath, filepath, filename, contentType;
private Dictionary fields;
public String getFilename() {
return filename;
}
public String getFilepath() {
return filepath;
}
public void setSavePath(String savePath) {
this.savePath = savePath;
}
public String getContentType() {
return contentType;
}
public String getFieldValue(String fieldName) {
if (fields == null || fieldName == null)
return null;
return (String) fields.get(fieldName);
}
private void setFilename(String s) {
if (s==null)
return;
int pos = s.indexOf(“filename=\””);
if (pos != -1) {
filepath = s.substring(pos+10, s.length()-1);
// Windows瀏覽器發(fā)送完整的文件路徑和名字
// 但Linux/Unix和Mac瀏覽器只發(fā)送文件名字
pos = filepath.lastIndexOf(“\\”);
if (pos != -1)
filename = filepath.substring(pos + 1);
else
filename = filepath;
}
}
private void setContentType(String s) {
if (s==null)
return;
int pos = s.indexOf(“: “);
if (pos != -1)
contentType = s.substring(pos+2, s.length());
}
public void doUpload(HttpServletRequest request) throws IOException {
ServletInputStream in = request.getInputStream();
byte line = new byte;
int i = in.readLine(line, 0, 128);
if (i 添加圖片尺脊
添加圖片
圖像ID:
選擇圖像:
第三步:插入數(shù)據(jù)庫(InsertImg.jsp)
第四步:顯示圖巖困燃片(ShowImg.jsp)
0)
response.getOutputStream().write(b,0,len);
in.close();
rs.close();
關(guān)于jsp基于數(shù)據(jù)庫實(shí)上傳的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
成都創(chuàng)新互聯(lián)科技公司主營:網(wǎng)站設(shè)計、網(wǎng)站建設(shè)、小程序制作、成都軟件開發(fā)、網(wǎng)頁設(shè)計、微信開發(fā)、成都小程序開發(fā)、網(wǎng)站制作、網(wǎng)站開發(fā)等業(yè)務(wù),是專業(yè)的成都做小程序公司、成都網(wǎng)站建設(shè)公司、成都做網(wǎng)站的公司。創(chuàng)新互聯(lián)公司集小程序制作創(chuàng)意,網(wǎng)站制作策劃,畫冊、網(wǎng)頁、VI設(shè)計,網(wǎng)站、軟件、微信、小程序開發(fā)于一體。
分享名稱:P實(shí)現(xiàn)數(shù)據(jù)庫文件上傳(jsp基于數(shù)據(jù)庫實(shí)上傳)
網(wǎng)站網(wǎng)址:http://m.fisionsoft.com.cn/article/dhohpgd.html


咨詢
建站咨詢
