学习js如何实现图片上传并将其存储在数据库中 (js实现上传图片并保存到数据库)
学习 Javascript 如何实现图片上传并将其存储在数据库中
在现代 Web 开发中,图片上传是常见的功能之一,特别是对于电商、社交等网站而言。JavaScript 是一种流行的编程语言,可以完成许多 Web 应用程序开发任务。本文将介绍如何使用 JavaScript 实现图片上传功能并将其存储在数据库中。
一、准备工作
在实现图片上传功能之前,我们需要准备以下工作:
1. 服务器端代码:我们需要使用 PHP 或其他服务器端技术来接收并处理图像数据。
2. 数据库:在将图像数据存储在数据库中之前,我们需要创建一个数据库。在这里我们将使用 MySQL。
3. HTML 页面:我们需要在 HTML 页面中添加一个表单和一些 JavaScript 代码,以便能够将图像数据发送到服务器并进行处理。
二、制作 HTML 页面
我们需要创建一个 HTML 页面,以便能够上传图像。以下是一个基本的表单示例:
“`html
“`
在上面的代码中,我们设置了一个输入类型为文件的输入字段,并将表单的操作设置为“upload.php”,这是我们将上传数据发送到的服务器脚本。我们还添加了一个提交按钮,以便能够发送表单数据。
三、上传图像
接下来,我们需要将 JavaScript 代码添加到 HTML 页面中,以便能够将输入字段中选择的图像数据上传到 Web 服务器。以下是上传图像的 JavaScript 代码示例:
“`javascript
const form = document.querySelector(‘form’);
const fileInput = document.querySelector(‘input[type=”file”]’);
form.addEventListener(‘submit’, event => {
event.preventDefault();
const files = fileInput.files;
const formData = new FormData();
formData.append(‘image’, files[0]);
fetch(‘/upload.php’, {
method: ‘POST’,
body: formData
}).then(response => {
console.log(response);
}).catch(error => {
console.error(error);
});
});
“`
在上面的代码中,我们使用 FormData 对象创建一个数据包,并在将其发送到服务器之前将选定的文件添加到 formData 中。我们还使用 fetch 函数将FormData同步发送到服务器。
四、接收并处理数据
在服务器端,我们需要接收并处理通过 JavaScript 代码发送的图像数据。以下是服务器端 PHP 代码的示例:
“`php
$servername = “localhost”;
$username = “username”;
$password = “password”;
$dbname = “myDB”;
// 创建链接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查链接
if ($conn->connect_error) {
die(“Connection fled: ” . $conn->connect_error);
}
// 从multipart/form-data中获取图像数据
$image = $_FILES[‘image’][‘tmp_name’];
$image = file_get_contents($image);
$image = base64_encode($image);
$sql = “INSERT INTO images (image) VALUES (‘$image’)”;
if ($conn->query($sql) === TRUE) {
echo “New record created successfully”;
} else {
echo “Error: ” . $sql . “
” . $conn->error;
}
$conn->close();
?>
“`
在上面的代码中,我们将选定的图像转换为 base64 编码数据,并将其存储在数据库中。将图片存储在数据库的另一种方法是将其存储在服务器的文件系统中,并将其路径存储在数据库中。
五、
至此,我们已成功实现了使用 JavaScript 上传图像并将其存储在数据库中的过程。我们创建了一个 HTML 表单来选择图像,使用 JavaScript 将其上传到服务器,并使用 PHP 将其存储在数据库中。这些技术不仅能上传图像,还可以用于上传和处理其他文件或数据类型。
相关问题拓展阅读:
- 用上传图片时,怎么样将其保存在我指定的文件夹内?
- 如何将图片存到数据库
用上传图片时,怎么样将其保存在我指定的文件夹内?
K
//前面为网页
var oFileChecker = document.getElementById(“fileChecker”);
function changeSrc(filePicker)
{
oFileChecker.src = filePicker.value;//读图毁亩片
}
//这个纤察森很重要,判断是否完全读完,否则判断图片大小不准确
oFileChecker.onreadystatechange = function ()
{
if (oFileChecker.readyState == “没罩complete”)
{
checkSize();
}
}
function checkSize()
{
var limit = document.getElementById(“fileSizeLimit”).value * 1024;
if (oFileChecker.fileSize > limit)
{
alert(“too large”);
}
else
{
alert(“ok”);
}
}
js是在客户端运行的, 不可能操作服务器
这里有一个无刷新多文件上传系统
里面可以族衫卖判断兆逗文件多少 文件类型塌旅
里面有教程和源码
如何将图片存到数据库
保存图片到数据亏凳库中,有两种方法:
1、一种是用大对销做旅象,即blob型,对C#不了解,但是java、c++中都有专门操作Blob的对象,应该是以二进制流的方式走的。但是不建议采用这样的管理方式,会加重数据库、程序负担,即使是手机开发也是如此。
2、图片保存在本地,数据库中用字符串存储地址,这样的方式胡昌比较好,也较易实现。但是缺乏安全性,把图片重命名就行了,改个后缀,一般人就不会打开。还是不放心,用二进制加密下就好,这样的程序代价仍然要比存在数据库大对象中要好。
通常对用户上传的图片需要保存到数据库中。解决方法一般有两种:一种是将图片保存的路派丛径存储到数据库;另一种是将图片以二进制数据流的形式直接写入数据库字段中。以下为具体方法:
一、保存图片的上传岁局路径到数据库:
string uppath=””;//用于保存图片上传路径
//获取上传图片的文件名
string fileFullname = this.FileUpload1.FileName;
//获取图片上传的时间,以时间作为图片的名字可以防止图片重名
string dataName = DateTime.Now.ToString(“yyyyMMddhhmmss”);
//获取图片的文件名(不含扩展名)
string fileName = fileFullname.Substring(fileFullname.LastIndexOf(“\\”) + 1);
//获取图片扩展名
string type = fileFullname.Substring(fileFullname.LastIndexOf(“.”) + 1);
//判断是否为要求的格式
if (type == “bmp” || type == “jpg” || type == “jpeg” || type == “gif” || type == “JPG” || type == “JPEG” || type == “BMP” || type == “GIF”)
{
//将图片上传到指定路径的文件夹
this.FileUpload1.SaveAs(Server.MapPath(“~/upload”) + “\\” + dataName + “.” + type);
//将路径保存到变量,将该变量的值保存到数据库相应字段即可
uppath = “~/upload/” + dataName + “.” + type;
}
二、将图片以二进制数据流直接保存乎羡让到数据库:
引用如下命名空间:
using System.Drawing;
using System.IO;
using System.Data.SqlClient;
设计数据库时,表中相应的字段类型为iamge
保存:
//图片路径
string strPath = this.FileUpload1.PostedFile.FileName.ToString ();
//读取图片
FileStream fs = new System.IO.FileStream(strPath, FileMode.Open, FileAccess.Read);
BinaryReader br = new BinaryReader(fs);
byte photo = br.ReadBytes((int)fs.Length);
br.Close();
fs.Close();
//存入
SqlConnection myConn = new SqlConnection(“Data Source=.;Initial Catalog=stumanage;User ID=sa;Password=123”);
string strComm = ” INSERT INTO stuInfo(stuid,stuimage) VALUES(107,@photoBinary )”;//操作数据库语句根据需要修改
SqlCommand myComm = new SqlCommand(strComm, myConn);
myComm.Parameters.Add(“@photoBinary”, SqlDbType.Binary, photo.Length);
myComm.Parameters.Value = photo;
myConn.Open();
if (myComm.ExecuteNonQuery() > 0)
{
this.Label1.Text = “ok”;
}
myConn.Close();
读取:
…连接数据库字符串省略
mycon.Open();
SqlCommand command = new
SqlCommand(“select stuimage from stuInfo where stuid=107”, mycon);//查询语句根据需要修改
byte image = (byte)command.ExecuteScalar ();
//指定从数据库读取出来的图片的保存路径及名字
string strPath = “~/Upload/zhangsan.JPG”;
string strPhotoPath = Server.MapPath(strPath);
//按上面的路径与名字保存图片文件
BinaryWriter bw = new BinaryWriter(File.Open(strPhotoPath,FileMode.OpenOrCreate));
bw.Write(image);
bw.Close();
//显示图片
this.Image1.ImageUrl = strPath;
采用俩种方式可以根据实际需求灵活选择。
js实现上传图片并保存到数据库的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于js实现上传图片并保存到数据库,学习js如何实现图片上传并将其存储在数据库中,用上传图片时,怎么样将其保存在我指定的文件夹内?,如何将图片存到数据库的信息别忘了在本站进行查找喔。