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

創(chuàng)新互聯(lián)是專業(yè)的洪江管理區(qū)網站建設公司,洪江管理區(qū)接單;提供做網站、成都網站建設,網頁設計,網站設計,建網站,PHP網站建設等專業(yè)做網站服務;采用PHP框架,可快速的進行洪江管理區(qū)網站開發(fā)網頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網站,專業(yè)的做網站團隊,希望更多企業(yè)前來合作!
本文將介紹如何利用功能,為網站的安全性和穩(wěn)定性提供保障。
一、前置條件
在實現(xiàn)數據庫文件上傳之前,需要確定以下的前置條件:
1. 數據庫環(huán)境:需要有一個可用的數據庫環(huán)境,可選擇MySql或Oracle等。同時,需要創(chuàng)建一個用于存儲文件信息的表。
2. 文件上傳組件:需要選擇一個文件上傳組件,本文選取的是apache的commons-fileupload組件。
3. P環(huán)境:需要建立一個P開發(fā)環(huán)境,可以將P文件部署在Tomcat或者Jetty等服務器上。
二、實現(xiàn)文件上傳功能
在確定了前置條件后,就可以開始實現(xiàn)文件上傳功能了。下文將以實現(xiàn)一個簡單的上傳功能為例,詳細介紹實現(xiàn)步驟。
1. 引入文件上傳組件
在jsp文件中引入文件上傳組件,如下所示:
“`
“`
2. 定義上傳表單
在jsp頁面中定義一個表單,包含上傳文件的相關信息,如下所示:
“`
請選擇要上傳的文件:
文件描述:
“`
其中,enctype為上傳文件的類型,需設置為”multipart/form-data”。
3. 處理文件上傳
在jsp頁面中實現(xiàn)文件上傳處理的代碼,如下所示:
“`
String fileUploadPath=”C:\\upload\\”; //設置上傳目錄
String fileName=null; //文件名
File tmpFile=null; //臨時文件
DiskFileItemFactory factory=new DiskFileItemFactory(); //設置緩沖區(qū)大小和臨時文件路徑
factory.setSizeThreshold(1024 * 1024); //設置緩沖區(qū)大小為1M
factory.setRepository(new File(System.getProperty(“java.io.tmpdir”)));//設置臨時文件保存的路徑
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”); //設置編碼
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();
}
“`
上述代碼中,定義了上傳文件的路徑、上傳文件的名稱、臨時文件路徑等相關信息,并使用DiskFileItemFactory類創(chuàng)建一個緩沖區(qū),使用ServletFileUpload類解析HTTP請求中的文件流。接著,通過List items=upload.parseRequest(request)方法解析HTTP請求中的各個文件項。如果該文件項是表單數據,就獲取該文件項的屬性值;如果該文件項是文件數據,就獲取文件名和文件大小等屬性信息,生成一個臨時文件,最后將文件保存到指定路徑中。
4. 存儲文件信息到數據庫中
在上傳文件成功后,需要將文件信息存儲到數據庫中。這里需要先在數據庫中創(chuàng)建一個表,用于存儲文件信息。同時,需要在P文件中加入相應的代碼,將文件信息存儲到數據庫中,如下所示:
“`
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”); //加載數據庫驅動
Connection conn=DriverManager.getConnection(“jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8”, “root”, “123456”); //創(chuàng)建數據庫連接
PreparedStatement pstmt=conn.prepareStatement(sql); //創(chuàng)建SQL語句執(zhí)行器
pstmt.setString(1, fileName); //設置參數
pstmt.setString(2, tmpFile.getAbsolutePath());
pstmt.setLong(3, tmpFile.length());
pstmt.setString(4, description);
pstmt.executeUpdate(); //執(zhí)行SQL語句,將文件信息存儲到數據庫中
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
“`
上述代碼中,通過獲取用戶上傳文件的描述信息,將文件信息存儲到數據庫中,實現(xiàn)了文件信息的持久化存儲。
三、
本文介紹了如何利用功能,通過使用apache的commons-fileupload組件實現(xiàn)文件上傳,并將文件信息持久化存儲到數據庫中,為網站的安全性提供了保障。
成都網站建設公司-創(chuàng)新互聯(lián),建站經驗豐富以策略為先導10多年以來專注數字化網站建設,提供企業(yè)網站建設,高端網站設計,響應式網站制作,設計師量身打造品牌風格,熱線:028-86922220用jsp+servlet+javabean上傳圖片到數據庫中,不是存路徑
%@ page language=”java”源明粗%>
顯示圖片
0)
response.getOutputStream().write(b,0,len);
in.close();
rs.close(); javabean上傳實例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:
選擇圖像:
第三步:插入數據庫(InsertImg.jsp)
第四步:顯示圖巖困燃片(ShowImg.jsp)
0)
response.getOutputStream().write(b,0,len);
in.close();
rs.close();
關于jsp基于數據庫實上傳的介紹到此就結束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關注本站。
成都創(chuàng)新互聯(lián)科技公司主營:網站設計、網站建設、小程序制作、成都軟件開發(fā)、網頁設計、微信開發(fā)、成都小程序開發(fā)、網站制作、網站開發(fā)等業(yè)務,是專業(yè)的成都做小程序公司、成都網站建設公司、成都做網站的公司。創(chuàng)新互聯(lián)公司集小程序制作創(chuàng)意,網站制作策劃,畫冊、網頁、VI設計,網站、軟件、微信、小程序開發(fā)于一體。
分享名稱:P實現(xiàn)數據庫文件上傳(jsp基于數據庫實上傳)
文章地址:http://m.5511xx.com/article/dhohpgd.html


咨詢
建站咨詢
