实现图片上传并储存:后台接收上传并存储至数据库 (后台接收图片上传并存到数据库)

一、前言

随着互联网的迅猛发展,很多网站或APP都需要实现图片上传并储存功能。图片上传并储存功能对于很多网站或APP来说都是必不可少的一项功能,尤其对于类似社交网站等需要大量图片存储的网站来说,更是必不可少的一项功能。

本文将为大家详细介绍如何实现图片上传并储存的功能,同时还会介绍如何将上传的图片存储进数据库。

二、实现图片上传

实现图片上传功能大致可以分为以下几个步骤:

1.前端页面搭建

首先需要搭建一个简单的前端页面,用于用户上传图片和预览上传的图片。可以使用HTML、CSS和JavaScript来实现。

2.后台代码编写

通过编写后台代码,从前端接收文件并进行处理。可以选择使用PHP、Python、Java等语言来实现。

以PHP语言为例,上传图片的后台代码如下所示:

“`php

if (!empty($_FILES[‘fileToUpload’]))

{

$file_name=$_FILES[‘fileToUpload’][‘name’];

$file_size=$_FILES[‘fileToUpload’][‘size’];

$file_tmp=$_FILES[‘fileToUpload’][‘tmp_name’];

$file_type=$_FILES[‘fileToUpload’][‘type’];

move_uploaded_file($file_tmp,”uploads/”.$file_name);

echo “File uploaded successfully.”;

}

else

{

echo “Please select a file to upload.”;

}

?>

“`

以上代码实现了接收从前端发送过来的文件,并将其存储至指定的文件夹中。

3.上传图片的存储路径

在上面的代码中,上传的图片将被存储在名为“uploads”的文件夹中。需要确保在服务器上创建了该目录,并确保该目录是可写的。

三、实现图片存储至数据库

实现图片上传并将上传的图片存储到指定文件夹中后,下一步则是将这些图片存储到数据库中。

以下代码为将图片存储到MySQL数据库中的PHP代码实例:

“`php

$servername = “localhost”;

$username = “username”;

$password = “password”;

$dbname = “myDB”;

$conn = mysqli_connect($servername, $username, $password, $dbname);

if (!$conn) {

die(“Connection fled: ” . mysqli_connect_error());

}

$file_name=$_FILES[‘fileToUpload’][‘name’];

$file_size=$_FILES[‘fileToUpload’][‘size’];

$sql = “INSERT INTO myImage (name, size) VALUES (‘$file_name’, ‘$file_size’)”;

if (mysqli_query($conn, $sql)) {

echo “New record created successfully”;

} else {

echo “Error: ” . $sql . “
” . mysqli_error($conn);

}

mysqli_close($conn);

?>

“`

该代码将图片的名称和大小插入到名为myImage的数据库表中。

四、

通过以上的介绍,大家应该已经了解了如何实现图片上传并储存至指定文件夹中,同时还了解了如何将图片储存到数据库中。

需要注意的是,在实际开发中,如果要实现更加完善的图片上传与储存功能,还需要考虑以下几个方面:

1、文件名称重复问题:两个不同的用户可能会上传同一名称的文件。为了避免这种情况,可以给每个文件添加一个唯一的ID,或者在文件名中添加时间戳。

2、文件上传大小限制:需要将文件大小限制在合理的范围内,避免上传过大的图片占用过多空间。

3、文件类型限制:对于不同类型的文件,需要进行不同的处理方式。

综上所述,实现图片上传并储存至数据库是当今许多网站或APP必不可少的一个功能。同时,如何避免一些潜在的问题也是开发人员需要关注和解决的重要问题之一。

相关问题拓展阅读:

thinkphp如何存储formdata传上来的图片并且存入数据库

可以使用异步post上传,后台接收POST,按照得到的键名传入数据库即可,望采纳

C#如何将图片从后台页面插入到数据库中

楼上说的对

可以在项目里面建立一个文件夹

插入数据库直接插漏段入图片的绝对路返裤誉径地纯闭址就OK了

sql 语句

create database Test

go

use Test

go

create table PicTable

(

cid int identity(1,1) not null ,

img image not null

)

go

select * from PicTable

string filePath = Img.PostedFile.FileName;

FileStream fileByte = new FileStream(filePath, FileMode.Open, FileAccess.Read);

BinaryReader bytes = new BinaryReader(fileByte);

byte photo = bytes.ReadBytes((int)fileByte.Length);

fileByte.Close();

bytes.Close();

string connStr = “database=test;server=.;user=sa;password=1234;”;

SqlConnection conn = new SqlConnection(connStr);

string cmdText = “insert into PicTable(img) values(@Picture)”;

SqlCommand cmd = new SqlCommand(cmdText, conn);

cmd.Parameters.Add(“@Picture”, SqlDbType.Image, photo.Length).Value = photo;

conn.Open();

cmd.ExecuteNonQuery();

conn.Close();

Img是一个FileUpLoad控件

数据库中字段类型是image,然后通过流把它写进去就行了

你要想清楚我们皮袜一般是把图片地址存进数据库,图片存在文件夹里面,用的时候用地址去调用图片。

图片放进数据库不好喊指的,对数据库的压力燃渗激太大!

在java代码中怎么从服务器上把图片拿来放到数据库里

一般不这么存,一般是把图片存到服务器上某个文件夹,然后存路径。真的要存图片,可以凳唯把图片转换成二让派进制坦粗贺。不过,你要是这么存,就显得很蠢。

大概流程:

1.上传插件的选择:此篇博文选择的是jQuery的zyupload文件上传插件;

2.上传请求发起后,java代码的处理:你是要将上传的图片只保存在服务器还是只保存在数据库还是说两者都采取。上传到服务器很简单,保存到数据库也很简单,但是此处需要敬蚂考虑业务,图片保存在数据库时采用哪种保存方式(本博文业务来自于项目,因为图片数量巨多,故在数据库是通过稿稿茄保存图片的路径实现的,并非二进制流);

3.图片保存在数据库后,在前键察段页面的回显功能。

看你用的是么数据库,一般是读取后转成二进制blob格式存入数据库的BLOB类型的字段中,另一种方法是把图片转成字符串存入数据库。

如果我没记错的话 png格式的图片(要不就是gif)都不需要转回图片,直接指定到—-pic—标签的src属性上就能显示。

附上图片字符串互转的java代码:

/**

  * base64编码字符串转换为图片

  * @param imgStr base64编码字符串

  * @param path 图片路径

  * @return

  */

 public static boolean base64StrToImage(String imgStr, String path) {

   if (imgStr == null)

   return false;

   BASE64Decoder decoder = new BASE64Decoder();

   try {

     

     byte b = decoder.decodeBuffer(imgStr);

     // 处理数据

     for (int i = 0; i 

if (b 

b += 256;

}

     }

     //文件夹不存在则自动创建

     File tempFile = new File(path);

     if (!tempFile.getParentFile().exists()) {

tempFile.getParentFile().mkdirs();

     }

     OutputStream out = new FileOutputStream(tempFile);

     out.write(b);

     out.flush();

     out.close();

     return true;

   } catch (Exception e) {

     return false;

   }

 }

/**

  * 图片转base64字符串

  * @param imgFile 图片路径

  * @return

  */

 public static String imageToBase64Str(String imgFile) {

   InputStream inputStream = null;

   byte data = null;

   try {

    段坦 inputStream = new FileInputStream(imgFile);

     data = new byte;

     inputStream.read(data);

     inputStream.close();

   } catch (IOException e) {

     e.printStackTrace();

 让燃改  }

  

   BASE64Encoder encoder = new BASE64Encoder();

   return encoder.encode(data);

 }

public static void main(String args) {

    String base64Str = imageToBase64Str(“D:/pic/001.jpg”);

    System.out.println(base64Str);

     坦判

    boolean b = base64StrToImage(base64Str, “D:/pic/temp/002.jpg”);

    System.out.println(b);

  }

关于后台接收图片上传并存到数据库的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


数据运维技术 » 实现图片上传并储存:后台接收上传并存储至数据库 (后台接收图片上传并存到数据库)