From 500a01d8b94521fe5ead8981aeacaa4ead9753f6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E9=99=88=40jkccchen123?= <893824054@qq.com>
Date: Tue, 9 Jul 2024 20:30:51 +0800
Subject: [PATCH] jk-2024.07.09-20:30
---
www2/main.js | 13 +++--
www2/main3.js | 92 ++++++++++++++++++++++++++++++++++++
www2/main4.js | 92 ++++++++++++++++++++++++++++++++++++
www2/main5.js | 92 ++++++++++++++++++++++++++++++++++++
www2/static/work1.html | 21 +++++---
www2/uploads/1000001044.jpg | Bin 0 -> 559501 bytes
6 files changed, 296 insertions(+), 14 deletions(-)
create mode 100644 www2/main3.js
create mode 100644 www2/main4.js
create mode 100644 www2/main5.js
create mode 100644 www2/uploads/1000001044.jpg
diff --git a/www2/main.js b/www2/main.js
index db91c7f..41a6972 100644
--- a/www2/main.js
+++ b/www2/main.js
@@ -77,13 +77,12 @@ app.post('/login', urlencodedParser, function(req, res) {//用户登录功能
res.send('数据库查询错误!'); // 可以重定向到登录页面或其他处理方式
return;
}
- if (results.length > 0) {
- // 登录成功
- //req.session.username = username; // 将用户名存储在session中
- res.redirect('/work1.html?username=' + username + '&userid=' + results[0].id); // 登录成功后重定向到系统主页面
- } else {// 登录失败,可以重定向到登录页面并显示错误信息
- console.log('[用户名或密码不正确]');
- res.send('');
+ if (results.length > 0) {// 登录成功
+ res.redirect('/work1.html?username=' + username + '&userid=' + results[0].id); // 登录成功后重定向到系统主页面
+ }
+ else {// 登录失败,可以重定向到登录页面并显示错误信息
+ console.log('[用户名或密码不正确]');
+ res.send('');
}
});
})
diff --git a/www2/main3.js b/www2/main3.js
new file mode 100644
index 0000000..93dfff8
--- /dev/null
+++ b/www2/main3.js
@@ -0,0 +1,92 @@
+var mysql = require('mysql');
+var express = require('express');
+var cors = require('cors');
+var app = express();
+var bodyParser = require('body-parser');
+const crypto = require('crypto');
+const fs = require('fs');
+const path = require('path');
+const fileUpload = require('express-fileupload');
+const session = require('express-session');
+const multer = require('multer');
+
+var connection = mysql.createConnection({
+ host : 'localhost',
+ port : '13307',
+ user : 'root',
+ password : '123456',
+ database : 'mailbox'
+});
+
+
+app.use(cors())
+
+//上传并识别功能
+const upload = multer({ dest: 'uploads/' }); // 上传文件的临时存储目录 // Multer是一个Node.js中间件,用于处理multipart/form-data类型的表单数据
+app.post('/api/upload', upload.single('image'), function(req, res) {// 单文件上传
+ if (!req.file) {
+ return res.status(400).send('No file uploaded.');
+ }
+
+ const file = req.file;
+ const tempFilePath = file.path;
+
+ const hash = crypto.createHash('sha256');
+ const input = fs.createReadStream(tempFilePath);
+
+ input.on('data', (data) => {
+ hash.update(data);
+ });
+ input.on('end', () => {
+ const fileHash = hash.digest('hex');
+ const fileName = file.originalname;
+ const filePath = path.join(__dirname, 'uploads', fileName);
+ const user_name = req.query.user_name
+ // Check if file with same hash already exists in database
+ const sqlCheck = 'SELECT * FROM images WHERE hash = ?';
+ connection.query(sqlCheck, [fileHash], function(err, result) {
+ if (err) {
+ console.log(err);
+ return res.status(500).send('Error checking file in database');
+ }
+
+ if (result.length > 0) {
+ // If file with same hash exists, return "has been uploaded"
+ fs.unlinkSync(tempFilePath); // Delete the uploaded file
+ return res.json({ message: 'File with same hash already uploaded', fileName: '识别成功,结果为:' + result[0].goods});//如果文件已经存在,则返回这个文件的对应的匹配结果
+ } else {
+ fs.rename(tempFilePath, filePath, function(err) {
+ if (err) {
+ console.log(err);
+ return res.status(500).send('Error uploading file');
+ } else {
+ const sql = 'INSERT INTO images (name, path, hash, username) VALUES (?, ?, ?, ?)';
+ connection.query(sql, [fileName, filePath, fileHash, user_name], function(err, result) {
+ if (err) {
+ console.log(err);
+ return res.status(500).send('Error uploading file to database');
+ }
+ res.json({ message: 'File uploaded successfully', fileName: "识别失败,请重传文件:" + fileName });
+ });
+ }
+ });
+ }
+ });
+ });
+});
+
+
+var server = app.listen(8085, '0.0.0.0', function () {
+
+ var host = server.address().address
+ var port = server.address().port
+
+ connection.connect(function(err){
+ if(err){
+ console.log('[query] - :'+err);
+ return;
+ }
+ console.log('[connection connect] succeed!');
+ });
+ console.log("应用实例,访问地址为 http://%s:%s", host, port)
+})
\ No newline at end of file
diff --git a/www2/main4.js b/www2/main4.js
new file mode 100644
index 0000000..2e88401
--- /dev/null
+++ b/www2/main4.js
@@ -0,0 +1,92 @@
+var mysql = require('mysql');
+var express = require('express');
+var cors = require('cors');
+var app = express();
+var bodyParser = require('body-parser');
+const crypto = require('crypto');
+const fs = require('fs');
+const path = require('path');
+const fileUpload = require('express-fileupload');
+const session = require('express-session');
+const multer = require('multer');
+
+var connection = mysql.createConnection({
+ host : 'localhost',
+ port : '13307',
+ user : 'root',
+ password : '123456',
+ database : 'mailbox'
+});
+
+
+app.use(cors())
+
+//上传并识别功能
+const upload = multer({ dest: 'uploads/' }); // 上传文件的临时存储目录 // Multer是一个Node.js中间件,用于处理multipart/form-data类型的表单数据
+app.post('/api/upload', upload.single('image'), function(req, res) {// 单文件上传
+ if (!req.file) {
+ return res.status(400).send('No file uploaded.');
+ }
+
+ const file = req.file;
+ const tempFilePath = file.path;
+
+ const hash = crypto.createHash('sha256');
+ const input = fs.createReadStream(tempFilePath);
+
+ input.on('data', (data) => {
+ hash.update(data);
+ });
+ input.on('end', () => {
+ const fileHash = hash.digest('hex');
+ const fileName = file.originalname;
+ const filePath = path.join(__dirname, 'uploads', fileName);
+ const user_name = req.query.user_name
+ // Check if file with same hash already exists in database
+ const sqlCheck = 'SELECT * FROM images WHERE hash = ?';
+ connection.query(sqlCheck, [fileHash], function(err, result) {
+ if (err) {
+ console.log(err);
+ return res.status(500).send('Error checking file in database');
+ }
+
+ if (result.length > 0) {
+ // If file with same hash exists, return "has been uploaded"
+ fs.unlinkSync(tempFilePath); // Delete the uploaded file
+ return res.json({ message: 'File with same hash already uploaded', fileName: '识别成功,结果为:' + result[0].goods});//如果文件已经存在,则返回这个文件的对应的匹配结果
+ } else {
+ fs.rename(tempFilePath, filePath, function(err) {
+ if (err) {
+ console.log(err);
+ return res.status(500).send('Error uploading file');
+ } else {
+ const sql = 'INSERT INTO images (name, path, hash, username) VALUES (?, ?, ?, ?)';
+ connection.query(sql, [fileName, filePath, fileHash, user_name], function(err, result) {
+ if (err) {
+ console.log(err);
+ return res.status(500).send('Error uploading file to database');
+ }
+ res.json({ message: 'File uploaded successfully', fileName: "识别失败,请重传文件:" + fileName });
+ });
+ }
+ });
+ }
+ });
+ });
+});
+
+
+var server = app.listen(8086, '0.0.0.0', function () {
+
+ var host = server.address().address
+ var port = server.address().port
+
+ connection.connect(function(err){
+ if(err){
+ console.log('[query] - :'+err);
+ return;
+ }
+ console.log('[connection connect] succeed!');
+ });
+ console.log("应用实例,访问地址为 http://%s:%s", host, port)
+})
\ No newline at end of file
diff --git a/www2/main5.js b/www2/main5.js
new file mode 100644
index 0000000..19947f6
--- /dev/null
+++ b/www2/main5.js
@@ -0,0 +1,92 @@
+var mysql = require('mysql');
+var express = require('express');
+var cors = require('cors');
+var app = express();
+var bodyParser = require('body-parser');
+const crypto = require('crypto');
+const fs = require('fs');
+const path = require('path');
+const fileUpload = require('express-fileupload');
+const session = require('express-session');
+const multer = require('multer');
+
+var connection = mysql.createConnection({
+ host : 'localhost',
+ port : '13307',
+ user : 'root',
+ password : '123456',
+ database : 'mailbox'
+});
+
+
+app.use(cors())
+
+//上传并识别功能
+const upload = multer({ dest: 'uploads/' }); // 上传文件的临时存储目录 // Multer是一个Node.js中间件,用于处理multipart/form-data类型的表单数据
+app.post('/api/upload', upload.single('image'), function(req, res) {// 单文件上传
+ if (!req.file) {
+ return res.status(400).send('No file uploaded.');
+ }
+
+ const file = req.file;
+ const tempFilePath = file.path;
+
+ const hash = crypto.createHash('sha256');
+ const input = fs.createReadStream(tempFilePath);
+
+ input.on('data', (data) => {
+ hash.update(data);
+ });
+ input.on('end', () => {
+ const fileHash = hash.digest('hex');
+ const fileName = file.originalname;
+ const filePath = path.join(__dirname, 'uploads', fileName);
+ const user_name = req.query.user_name
+ // Check if file with same hash already exists in database
+ const sqlCheck = 'SELECT * FROM images WHERE hash = ?';
+ connection.query(sqlCheck, [fileHash], function(err, result) {
+ if (err) {
+ console.log(err);
+ return res.status(500).send('Error checking file in database');
+ }
+
+ if (result.length > 0) {
+ // If file with same hash exists, return "has been uploaded"
+ fs.unlinkSync(tempFilePath); // Delete the uploaded file
+ return res.json({ message: 'File with same hash already uploaded', fileName: '识别成功,结果为:' + result[0].goods});//如果文件已经存在,则返回这个文件的对应的匹配结果
+ } else {
+ fs.rename(tempFilePath, filePath, function(err) {
+ if (err) {
+ console.log(err);
+ return res.status(500).send('Error uploading file');
+ } else {
+ const sql = 'INSERT INTO images (name, path, hash, username) VALUES (?, ?, ?, ?)';
+ connection.query(sql, [fileName, filePath, fileHash, user_name], function(err, result) {
+ if (err) {
+ console.log(err);
+ return res.status(500).send('Error uploading file to database');
+ }
+ res.json({ message: 'File uploaded successfully', fileName: "识别失败,请重传文件:" + fileName });
+ });
+ }
+ });
+ }
+ });
+ });
+});
+
+
+var server = app.listen(8087, '0.0.0.0', function () {
+
+ var host = server.address().address
+ var port = server.address().port
+
+ connection.connect(function(err){
+ if(err){
+ console.log('[query] - :'+err);
+ return;
+ }
+ console.log('[connection connect] succeed!');
+ });
+ console.log("应用实例,访问地址为 http://%s:%s", host, port)
+})
\ No newline at end of file
diff --git a/www2/static/work1.html b/www2/static/work1.html
index bc06b86..18fc2f0 100644
--- a/www2/static/work1.html
+++ b/www2/static/work1.html
@@ -305,10 +305,7 @@
}
});
}
-
-
-
返回模块选择
@@ -321,13 +318,23 @@