當前位置:首頁 » 文件管理 » 文件上傳到資料庫

文件上傳到資料庫

發布時間: 2024-05-28 14:43:20

1. 濡備綍涓婁紶鏂囦歡鍒扮綉絝欐暟鎹搴

涓嬮潰緇欏嚭涓涓灝嗘枃浠朵繚瀛樺埌鏁版嵁搴撶殑渚嬪瓙錛屼緵緗戝弸鍙傝冦
鍘熺悊錛氬湪琛ㄤ腑寤虹珛涓涓瀛楁靛悕涓衡滈檮浠垛濓紝鏁版嵁綾誨瀷涓篛LE
瀵硅薄鐨勫瓧孌碉紝鐒跺悗鍒╃敤鍚戝煎緩涓涓紿椾綋錛
1.璁劇疆闄勪歡鏂囨湰妗嗙殑濡備笅灞炴р滄帶浠舵彁紺烘枃鏈鈥濅負鈥滃彸閿鍗曞嚮閫夋嫨鎻掑叆瀵硅薄鈥濓紝濡備笅鍥
2.閫変腑鐢辨枃浠跺壋寤猴紝鍐嶅崟鍑繪祻瑙堟寜閽錛岄夋嫨鏂囦歡鍚庯紝鍐嶉変腑鏄劇ず涓哄浘鏍囷紝濡備笅鍥
3.鍗曞嚮紜瀹氭寜閽錛屽嵆鍙灝嗘枃浠朵繚瀛樺埌鏁版嵁搴撲腑錛屽弻鍑昏ュ浘鏍囧嵆鍙鎵撳紑鐩稿簲鐨勬枃浠

2. springboot上傳文件寫入資料庫

首先導入了相應的jar包
<!--thymeleaf--><dependency>
<groupId>org.thymeleaf</groupId>
<artifactId>thymeleaf-spring5</artifactId></dependency><dependency>
<groupId>org.thymeleaf.extras</groupId>
<artifactId>thymeleaf-extras-java8time</artifactId></dependency><!--資料庫連接--><dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId></dependency><!--mybatis整合springboot--><dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.2</version></dependency><!--druid數據源--><dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.22</version></dependency>

對數據源,mybatis,和上傳文件進行配置
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource username: root password: shw123zxc url: jdbc:mysql://localhost:3306/mybatis?useSSL=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC driver-class-name: com.mysql.cj.jdbc.Driver servlet:
multipart:
max-request-size: 10MB #上傳文件的最大總大小
max-file-size: 10MB #上傳單個文件的最大大小mybatis:
type-aliases-package: cn.codewei.pojo mapper-locations: classpath:/mapper/*.xml1234567891011121314

然後寫一個文件上傳的html,注意表單的==enctype屬性要設置為multipart/form-data==
<!DOCTYPE html><html lang="en"><head>
<meta charset="UTF-8">
<title>Title</title></head><body>
<h1>文件上傳</h1>
<form method="post" enctype="multipart/form-data" action="/upload">
<input type="file" name="file">
<input type="submit" value="上傳">
</form></body></html>1234567891011121314

然後寫一個Mapper和對應的Mapper.xml和service
@Mapper@Repositorypublic interface PhotoMapper {
// 向資料庫中添加圖片
public int addPhoto(Photo photo);

// 從資料庫中取出圖片
public Photo getPhotoById(@Param("id") int id);}123456789
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="cn.codewei.mapper.PhotoMapper">
<insert id="addPhoto" parameterType="photo">
insert into image values (#{id},#{photo},#{photo_name},#{photo_type}) </insert>
<select id="getPhotoById" resultType="photo">
select * from image where id=#{id} </select></mapper>123456789101112

在Controller中進行調用
上傳
@Autowiredprivate PhotoService photoService;@Autowiredprivate Photo photo;@PostMapping("/upload")@ResponseBodypublic String upload(@RequestParam("file") MultipartFile file, HttpServletRequest request) throws IOException {
byte[] bytes = file.getBytes();
photo.setPhoto(bytes);
photo.setPhoto_name(file.getOriginalFilename());
photo.setPhoto_type(".jpg");

photoService.addPhoto(photo);

return "上傳成功!";}123456789101112131415161718

取出,在頁面中顯示
@RequestMapping("/getPhoto")public String getImage(HttpServletResponse response) throws IOException {
Photo photo = photoService.getPhotoById(1);
byte[] photo1 = photo.getPhoto();
ServletOutputStream os = response.getOutputStream();
os.write(photo1);
os.close();
return "";}123456789
<!DOCTYPE html><html lang="en"><head>
<meta charset="UTF-8">
<title>Title</title></head><body>
<h1>首頁</h1>
<img src="/getPhoto" width="200px" height="200px"></body></html>

3. bak鏂囦歡鎬庝箞瀵煎叆鏁版嵁搴

鍏堝緩絝嬩竴涓澶囦喚錛岀劧鍚庡緩絝嬪囦喚鐢‵TP錛岃繖鏍風┖闂存暟鎹搴撻噷浼氱敓鎴愪竴涓1.bak鏂囦歡鎴栬呮槸1.sql鏂囦歡銆傛墦寮FTP杞浠訛紝鐒跺悗灝嗙數鑴戦噷鐨1.sql鏂囦歡涓婁紶鍒拌繖鏁版嵁搴撶┖闂達紝浼氭彁紺鴻嗙洊錛岀偣鍑繪槸銆備紶瀹屼互鍚庯紝鐐逛竴涓嬩粠澶囦喚涓榪樺師灝卞彲浠ヤ簡銆
鎵撳紑bak鏂囦歡鐨勬柟娉
棣栧厛錛屾垜浠鎵懼埌bak鏂囦歡涔嬪悗錛屾垜浠鍏堟槑紜瀹冩槸灞炰簬鍝涓杞浠剁敓鎴愮殑鏂囦歡錛屾瘮濡傛槸cad鐢熸垚鐨.bak鏂囦歡錛岄偅涔堟垜浠灝變嬌鐢╟ad杞浠舵潵鎵撳紑瀹冿紝濡傛灉鏄痺ord鐢熸垚鐨勶紝灝辯敤office鏉ユ墦寮鍗沖彲銆
鐜板湪鎴戜滑灝嗘枃浠剁殑鎷撳睍鍚嶈繘琛岀紪杈戞樉紺恆傚湪璧勬簮綆$悊鍏朵腑榪涜岃劇疆瀹屾垚銆
鐜板湪錛屾湁cad杞浠剁敓鎴愮殑bak鏂囦歡鎴戜滑灝嗗叾鎷撳睍鍚嶅懡鍚嶄負鈥.dwg鈥濆嵆鍙瀹屾垚鎵撳紑浜 銆
鏄灞炰簬office杞浠朵駭鐢熺殑bak鏂囦歡鐨勮瘽錛屽氨浣跨敤鐩稿簲鐨勬搷浣滃皢bak鏂囦歡鐨勫悗緙鍚嶆敼涓哄瑰簲鐨勬牸寮忓氨琛屼簡錛屾瘮濡倃ord鐨勬敼涓篸oc錛孭owerPoint鐨勬敼涓簆pt絳夌瓑銆
鐒跺悗浣跨敤office杞浠跺皢鍏舵墦寮鍗沖彲銆
鍏朵粬杞浠跺瑰簲鐢熸垚鐨刡ak鏂囦歡錛屽氨鏄鐢ㄧ浉搴旂殑鏂規硶灝嗗叾鏍煎紡鏇存敼涔嬪悗錛屽畬鎴愭墦寮灝辮屼簡銆
姣斿倀xt瀵瑰簲鐨刡ak鏂囦歡銆

4. 如何上傳文件到資料庫

文件上傳到資料庫請參考以下示例:
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page language="java" import="java.sql.*" %>
<%/////連接資料庫
java.sql.Connection conn;
java.sql.Statement stmt;
java.sql.ResultSet rs1;
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn=DriverManager.getConnection("jdbc:odbc:dababasename");///數據源
stmt=conn.createStatement();
%>
<%

String sqlin="insert into drawing values ;
File file = new File("c:/z.jpg");
long l1=file.length();
int l2=(int)l1;
FileInputStream is = new FileInputStream(file);
InputStream fis=(InputStream)is;
PreparedStatement ps = conn.prepareStatement("insert into images values (?,?)");
ps.setString(1,file.getName());
ps.setBinaryStream(2,fis,file.length());
ps.executeUpdate();
ps.close();
fis.close();

//將圖片從資料庫中提取,進行顯示
//drawing欄位為IMAGE類型
stmt = conn.createStatement();
rs1 = stmt.executeQuery("SELECT * FROM drawing WHERE drawing_code ='0-515' and version=3");
if (rs1.next())
{
String dim_image = rs1.getString("file_name");
byte [] blocco = rs1.getBytes("drawing");
response.setContentType("image/jpeg");
ServletOutputStream op = response.getOutputStream();
for(int i=0;i<blocco.length;i++)
{
op.write(blocco[i]);
}
}
rs1.close();
%>

5. 怎樣用php實現上傳圖片到資料庫

php實現上傳圖片保存到資料庫的方法。具體分析如下:

php 上傳圖片,一般都使用move_uploaded_file方法保存在伺服器上。但如果一個網站有多台伺服器,就需要把圖片發布到所有的伺服器上才能正常使用(使用圖片伺服器的除外)
如果把圖片數據保存到資料庫中,多台伺服器間可以實現文件共享,節省空間。

首先圖片文件是二進制數據,所以需要把二進制數據保存在mysql資料庫。
mysql資料庫提供了BLOB類型用於存儲大量數據,BLOB是一個二進制對象,能容納不同大小的數據。

BLOB類型有以下四種,除存儲的最大信息量不同外,其他都是一樣的。可根據需要使用不同的類型。

TinyBlob 最大 255B
Blob 最大 65K
MediumBlob 最大 16M
LongBlob 最大 4G

數據表photo,用於保存圖片數據,結構如下:

CREATETABLE`photo`(
`id`int(10)unsignedNOTNULLauto_increment,
`type`varchar(100)NOTNULL,
`binarydata`mediumblobNOTNULL,
PRIMARYKEY(`id`)
)ENGINE=MyISAMDEFAULTCHARSET=latin1AUTO_INCREMENT=1;

upload_image_todb.php代碼如下:

<?php
//連接資料庫
$conn=@mysql_connect("localhost","root","")ordie(mysql_error());
@mysql_select_db('demo',$conn)ordie(mysql_error());//判斷action
$action=isset($_REQUEST['action'])?$_REQUEST['action']:'';
//上傳圖片
if($action=='add'){
$image=mysql_escape_string(file_get_contents($_FILES['photo']['tmp_name']));
$type=$_FILES['photo']['type'];
$sqlstr="insertintophoto(type,binarydata)values('".$type."','".$image."')";
@mysql_query($sqlstr)ordie(mysql_error());
header('location:upload_image_todb.php');
exit();
//顯示圖片
}elseif($action=='show'){
$id=isset($_GET['id'])?intval($_GET['id']):0;
$sqlstr="select*fromphotowhereid=$id";
$query=mysql_query($sqlstr)ordie(mysql_error());
$thread=mysql_fetch_assoc($query);
if($thread){
header('content-type:'.$thread['type']);
echo$thread['binarydata'];
exit();
}
}else{
//顯示圖片列表及上傳表單
?>
<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<metahttp-equiv="content-type"content="text/html;charset=utf-8">
<title>uploadimagetodbdemo</title>
</head>

<body>
<formname="form1"method="post"action="upload_image_todb.php"enctype="multipart/form-data">
<p>圖片:<inputtype="file"name="photo"></p>
<p><inputtype="hidden"name="action"value="add"><inputtype="submit"name="b1"value="提交"></p>
</form>

<?php
$sqlstr="select*fromphotoorderbyiddesc";
$query=mysql_query($sqlstr)ordie(mysql_error());
$result=array();
while($thread=mysql_fetch_assoc($query)){
$result[]=$thread;
}
foreach($resultas$val){
echo'<p><img
src="upload_image_todb.php?action=show&id='.$val['id'].'&t='.time().'"
width="150"></p>';
}
?>
</body>
</html>
<?php
}
?>

程序運行截圖和資料庫截圖:

6. 在Yii中怎樣把excel表格上傳到資料庫中

1.網站中商品一多,肯定需要一鍵導入功能,有現在成的第三方插件類PHPExcel,可以直接網路搜索進行下載。

7. 如何把excel表格數據導入到資料庫

1、打開SQL Server 2014 Management Studio 資料庫,並且登錄進去;

8. 怎樣將.sql文件導入到資料庫

方法一:

1、生成腳本導出導入sql2008全部數據,右鍵要導出的資料庫,任務--生成腳本。

熱點內容
安全加密配置成功是什麼 發布:2025-01-17 08:49:40 瀏覽:856
直流電存儲 發布:2025-01-17 08:47:33 瀏覽:552
容聲冰箱壓縮機多少錢 發布:2025-01-17 08:18:38 瀏覽:886
微信怎麼取消密碼怎麼設置 發布:2025-01-17 08:06:18 瀏覽:793
如何帳戶密碼 發布:2025-01-17 07:56:11 瀏覽:612
伺服器內網ip地址安全 發布:2025-01-17 07:33:18 瀏覽:186
華為新演算法 發布:2025-01-17 07:31:43 瀏覽:56
希沃如何存儲 發布:2025-01-17 07:31:00 瀏覽:552
演算法研讀 發布:2025-01-17 07:19:37 瀏覽:280
我的世界橙子生存之旅伺服器ip 發布:2025-01-17 07:19:27 瀏覽:618