From ba557576d960281d774ac1e3c83f2e29786ed682 Mon Sep 17 00:00:00 2001
From: 李太白3028 <2410382594@qq.com>
Date: 星期三, 30 七月 2025 09:21:41 +0800
Subject: [PATCH] Merge branch 'master' of ssh://115.28.86.8:29418/~admin/天开景运_0405_250719

---
 Server/付林涛/code/build-tianKai-Desktop_Qt_5_9_4_MinGW_32bit-Debug/debug/addfile.o             |    0 
 Server/付林涛/code/tianKai/struct_data.h                                                        |   15 +
 Server/付林涛/code/build-tianKai-Desktop_Qt_5_9_4_MinGW_32bit-Debug/debug/moc_addfile.o         |    0 
 Server/付林涛/code/tianKai/addfile.cpp                                                          |   90 +++++++++
 Server/付林涛/code/tianKai/addfile.h                                                            |    6 
 Server/刘创世/log/日志_刘创世_2025-07-30.doc                                                         |    0 
 Client/雷鹏涛/log/日报_雷鹏涛_0729.doc                                                               |    0 
 Server/付林涛/code/build-tianKai-Desktop_Qt_5_9_4_MinGW_32bit-Debug/debug/moc_vcsmainwindow.cpp |   85 ++++++---
 Server/付林涛/code/build-tianKai-Desktop_Qt_5_9_4_MinGW_32bit-Debug/debug/uploador.o            |    0 
 Client/张德虎/log/日志_张德虎_0729 -.doc                                                             |    0 
 Server/付林涛/code/tianKai/release.h                                                            |    6 
 Server/付林涛/code/build-tianKai-Desktop_Qt_5_9_4_MinGW_32bit-Debug/debug/moc_release.o         |    0 
 Server/付林涛/code/build-tianKai-Desktop_Qt_5_9_4_MinGW_32bit-Debug/debug/moc_uploador.o        |    0 
 Client/李韩宇/log/日志_李韩宇_0729.doc                                                               |    0 
 Client/舒令文/log/日志_舒令文_20250729.doc                                                           |    0 
 Server/付林涛/code/tianKai/uploador.h                                                           |    2 
 Client/王旭东/log/日志_王旭东_0729.doc                                                               |    0 
 Server/付林涛/code/build-tianKai-Desktop_Qt_5_9_4_MinGW_32bit-Debug/debug/heartbeatworker.o     |    0 
 Server/付林涛/code/build-tianKai-Desktop_Qt_5_9_4_MinGW_32bit-Debug/debug/vcsmainwindow.o       |    0 
 Server/付林涛/log/日志_付林涛_0729.doc                                                               |    0 
 Server/付林涛/code/tianKai/vcsmainwindow.h                                                      |    7 
 Server/付林涛/code/build-tianKai-Desktop_Qt_5_9_4_MinGW_32bit-Debug/debug/tianKai.exe           |    0 
 Server/付林涛/code/build-tianKai-Desktop_Qt_5_9_4_MinGW_32bit-Debug/debug/moc_addfile.cpp       |   60 ++++--
 Server/付林涛/code/build-tianKai-Desktop_Qt_5_9_4_MinGW_32bit-Debug/debug/moc_release.cpp       |   69 ++++++-
 Server/付林涛/code/build-tianKai-Desktop_Qt_5_9_4_MinGW_32bit-Debug/debug/release.o             |    0 
 Server/付林涛/code/tianKai/release.cpp                                                          |   13 +
 Server/付林涛/code/tianKai/tianKai.pro.user                                                     |    2 
 Server/付林涛/code/tianKai/uploador.cpp                                                         |   12 
 Server/付林涛/code/tianKai/vcsmainwindow.cpp                                                    |  130 ++------------
 Server/付林涛/code/build-tianKai-Desktop_Qt_5_9_4_MinGW_32bit-Debug/debug/main.o                |    0 
 Server/郭铭鸿/log/日志_郭铭鸿_0729.doc                                                               |    0 
 Client/熊国政/log/日志_熊国政_0730.doc                                                               |    0 
 Server/付林涛/code/build-tianKai-Desktop_Qt_5_9_4_MinGW_32bit-Debug/debug/moc_vcsmainwindow.o   |    0 
 Server/李晨飞/log/日志_李晨飞_0729.doc                                                               |    0 
 34 files changed, 313 insertions(+), 184 deletions(-)

diff --git "a/Server/\344\273\230\346\236\227\346\266\233/log/~WRL0001.tmp" "b/Client/\345\274\240\345\276\267\350\231\216/log/\346\227\245\345\277\227_\345\274\240\345\276\267\350\231\216_0729 -.doc"
similarity index 69%
copy from "Server/\344\273\230\346\236\227\346\266\233/log/~WRL0001.tmp"
copy to "Client/\345\274\240\345\276\267\350\231\216/log/\346\227\245\345\277\227_\345\274\240\345\276\267\350\231\216_0729 -.doc"
index 9f83358..ee71039 100644
--- "a/Server/\344\273\230\346\236\227\346\266\233/log/~WRL0001.tmp"
+++ "b/Client/\345\274\240\345\276\267\350\231\216/log/\346\227\245\345\277\227_\345\274\240\345\276\267\350\231\216_0729 -.doc"
Binary files differ
diff --git "a/Client/\346\235\216\351\237\251\345\256\207/log/\346\227\245\345\277\227_\346\235\216\351\237\251\345\256\207_0729.doc" "b/Client/\346\235\216\351\237\251\345\256\207/log/\346\227\245\345\277\227_\346\235\216\351\237\251\345\256\207_0729.doc"
new file mode 100644
index 0000000..23a45f2
--- /dev/null
+++ "b/Client/\346\235\216\351\237\251\345\256\207/log/\346\227\245\345\277\227_\346\235\216\351\237\251\345\256\207_0729.doc"
Binary files differ
diff --git "a/Client/\347\206\212\345\233\275\346\224\277/log/\346\227\245\345\277\227_\347\206\212\345\233\275\346\224\277_0730.doc" "b/Client/\347\206\212\345\233\275\346\224\277/log/\346\227\245\345\277\227_\347\206\212\345\233\275\346\224\277_0730.doc"
new file mode 100644
index 0000000..ce67410
--- /dev/null
+++ "b/Client/\347\206\212\345\233\275\346\224\277/log/\346\227\245\345\277\227_\347\206\212\345\233\275\346\224\277_0730.doc"
Binary files differ
diff --git "a/Client/\347\216\213\346\227\255\344\270\234/log/\346\227\245\345\277\227_\347\216\213\346\227\255\344\270\234_0729.doc" "b/Client/\347\216\213\346\227\255\344\270\234/log/\346\227\245\345\277\227_\347\216\213\346\227\255\344\270\234_0729.doc"
new file mode 100644
index 0000000..c3315c3
--- /dev/null
+++ "b/Client/\347\216\213\346\227\255\344\270\234/log/\346\227\245\345\277\227_\347\216\213\346\227\255\344\270\234_0729.doc"
Binary files differ
diff --git "a/Client/\350\210\222\344\273\244\346\226\207/log/\346\227\245\345\277\227_\350\210\222\344\273\244\346\226\207_20250729.doc" "b/Client/\350\210\222\344\273\244\346\226\207/log/\346\227\245\345\277\227_\350\210\222\344\273\244\346\226\207_20250729.doc"
new file mode 100644
index 0000000..ea7cc22
--- /dev/null
+++ "b/Client/\350\210\222\344\273\244\346\226\207/log/\346\227\245\345\277\227_\350\210\222\344\273\244\346\226\207_20250729.doc"
Binary files differ
diff --git "a/Client/\351\233\267\351\271\217\346\266\233/log/\346\227\245\346\212\245_\351\233\267\351\271\217\346\266\233_0729.doc" "b/Client/\351\233\267\351\271\217\346\266\233/log/\346\227\245\346\212\245_\351\233\267\351\271\217\346\266\233_0729.doc"
new file mode 100644
index 0000000..6eddcec
--- /dev/null
+++ "b/Client/\351\233\267\351\271\217\346\266\233/log/\346\227\245\346\212\245_\351\233\267\351\271\217\346\266\233_0729.doc"
Binary files differ
diff --git "a/Server/\344\273\230\346\236\227\346\266\233/code/build-tianKai-Desktop_Qt_5_9_4_MinGW_32bit-Debug/debug/addfile.o" "b/Server/\344\273\230\346\236\227\346\266\233/code/build-tianKai-Desktop_Qt_5_9_4_MinGW_32bit-Debug/debug/addfile.o"
index adf69aa..beb4e11 100644
--- "a/Server/\344\273\230\346\236\227\346\266\233/code/build-tianKai-Desktop_Qt_5_9_4_MinGW_32bit-Debug/debug/addfile.o"
+++ "b/Server/\344\273\230\346\236\227\346\266\233/code/build-tianKai-Desktop_Qt_5_9_4_MinGW_32bit-Debug/debug/addfile.o"
Binary files differ
diff --git "a/Server/\344\273\230\346\236\227\346\266\233/code/build-tianKai-Desktop_Qt_5_9_4_MinGW_32bit-Debug/debug/heartbeatworker.o" "b/Server/\344\273\230\346\236\227\346\266\233/code/build-tianKai-Desktop_Qt_5_9_4_MinGW_32bit-Debug/debug/heartbeatworker.o"
index bcde7d9..4ec8c47 100644
--- "a/Server/\344\273\230\346\236\227\346\266\233/code/build-tianKai-Desktop_Qt_5_9_4_MinGW_32bit-Debug/debug/heartbeatworker.o"
+++ "b/Server/\344\273\230\346\236\227\346\266\233/code/build-tianKai-Desktop_Qt_5_9_4_MinGW_32bit-Debug/debug/heartbeatworker.o"
Binary files differ
diff --git "a/Server/\344\273\230\346\236\227\346\266\233/code/build-tianKai-Desktop_Qt_5_9_4_MinGW_32bit-Debug/debug/main.o" "b/Server/\344\273\230\346\236\227\346\266\233/code/build-tianKai-Desktop_Qt_5_9_4_MinGW_32bit-Debug/debug/main.o"
index dab0d1e..7686e5c 100644
--- "a/Server/\344\273\230\346\236\227\346\266\233/code/build-tianKai-Desktop_Qt_5_9_4_MinGW_32bit-Debug/debug/main.o"
+++ "b/Server/\344\273\230\346\236\227\346\266\233/code/build-tianKai-Desktop_Qt_5_9_4_MinGW_32bit-Debug/debug/main.o"
Binary files differ
diff --git "a/Server/\344\273\230\346\236\227\346\266\233/code/build-tianKai-Desktop_Qt_5_9_4_MinGW_32bit-Debug/debug/moc_addfile.cpp" "b/Server/\344\273\230\346\236\227\346\266\233/code/build-tianKai-Desktop_Qt_5_9_4_MinGW_32bit-Debug/debug/moc_addfile.cpp"
index 89f7c66..11ddf87 100644
--- "a/Server/\344\273\230\346\236\227\346\266\233/code/build-tianKai-Desktop_Qt_5_9_4_MinGW_32bit-Debug/debug/moc_addfile.cpp"
+++ "b/Server/\344\273\230\346\236\227\346\266\233/code/build-tianKai-Desktop_Qt_5_9_4_MinGW_32bit-Debug/debug/moc_addfile.cpp"
@@ -21,8 +21,8 @@
 QT_WARNING_PUSH
 QT_WARNING_DISABLE_DEPRECATED
 struct qt_meta_stringdata_AddFile_t {
-    QByteArrayData data[5];
-    char stringdata0[69];
+    QByteArrayData data[7];
+    char stringdata0[102];
 };
 #define QT_MOC_LITERAL(idx, ofs, len) \
     Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
@@ -34,11 +34,14 @@
 QT_MOC_LITERAL(0, 0, 7), // "AddFile"
 QT_MOC_LITERAL(1, 8, 13), // "addFileSignal"
 QT_MOC_LITERAL(2, 22, 0), // ""
-QT_MOC_LITERAL(3, 23, 23), // "on_pushButton_3_clicked"
-QT_MOC_LITERAL(4, 47, 21) // "on_pushButton_clicked"
+QT_MOC_LITERAL(3, 23, 21), // "std::shared_ptr<char>"
+QT_MOC_LITERAL(4, 45, 10), // "addFileMsg"
+QT_MOC_LITERAL(5, 56, 23), // "on_pushButton_3_clicked"
+QT_MOC_LITERAL(6, 80, 21) // "on_pushButton_clicked"
 
     },
-    "AddFile\0addFileSignal\0\0on_pushButton_3_clicked\0"
+    "AddFile\0addFileSignal\0\0std::shared_ptr<char>\0"
+    "addFileMsg\0on_pushButton_3_clicked\0"
     "on_pushButton_clicked"
 };
 #undef QT_MOC_LITERAL
@@ -49,22 +52,24 @@
        7,       // revision
        0,       // classname
        0,    0, // classinfo
-       3,   14, // methods
+       4,   14, // methods
        0,    0, // properties
        0,    0, // enums/sets
        0,    0, // constructors
        0,       // flags
-       1,       // signalCount
+       2,       // signalCount
 
  // signals: name, argc, parameters, tag, flags
-       1,    2,   29,    2, 0x06 /* Public */,
+       1,    2,   34,    2, 0x06 /* Public */,
+       4,    1,   39,    2, 0x06 /* Public */,
 
  // slots: name, argc, parameters, tag, flags
-       3,    0,   34,    2, 0x08 /* Private */,
-       4,    0,   35,    2, 0x08 /* Private */,
+       5,    0,   42,    2, 0x08 /* Private */,
+       6,    0,   43,    2, 0x08 /* Private */,
 
  // signals: parameters
-    QMetaType::Void, QMetaType::QString, QMetaType::QString,    2,    2,
+    QMetaType::Void, 0x80000000 | 3, QMetaType::Int,    2,    2,
+    QMetaType::Void, QMetaType::QString,    2,
 
  // slots: parameters
     QMetaType::Void,
@@ -79,17 +84,25 @@
         AddFile *_t = static_cast<AddFile *>(_o);
         Q_UNUSED(_t)
         switch (_id) {
-        case 0: _t->addFileSignal((*reinterpret_cast< QString(*)>(_a[1])),(*reinterpret_cast< QString(*)>(_a[2]))); break;
-        case 1: _t->on_pushButton_3_clicked(); break;
-        case 2: _t->on_pushButton_clicked(); break;
+        case 0: _t->addFileSignal((*reinterpret_cast< std::shared_ptr<char>(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break;
+        case 1: _t->addFileMsg((*reinterpret_cast< QString(*)>(_a[1]))); break;
+        case 2: _t->on_pushButton_3_clicked(); break;
+        case 3: _t->on_pushButton_clicked(); break;
         default: ;
         }
     } else if (_c == QMetaObject::IndexOfMethod) {
         int *result = reinterpret_cast<int *>(_a[0]);
         {
-            typedef void (AddFile::*_t)(QString , QString );
+            typedef void (AddFile::*_t)(std::shared_ptr<char> , int );
             if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&AddFile::addFileSignal)) {
                 *result = 0;
+                return;
+            }
+        }
+        {
+            typedef void (AddFile::*_t)(QString );
+            if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&AddFile::addFileMsg)) {
+                *result = 1;
                 return;
             }
         }
@@ -121,22 +134,29 @@
     if (_id < 0)
         return _id;
     if (_c == QMetaObject::InvokeMetaMethod) {
-        if (_id < 3)
+        if (_id < 4)
             qt_static_metacall(this, _c, _id, _a);
-        _id -= 3;
+        _id -= 4;
     } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
-        if (_id < 3)
+        if (_id < 4)
             *reinterpret_cast<int*>(_a[0]) = -1;
-        _id -= 3;
+        _id -= 4;
     }
     return _id;
 }
 
 // SIGNAL 0
-void AddFile::addFileSignal(QString _t1, QString _t2)
+void AddFile::addFileSignal(std::shared_ptr<char> _t1, int _t2)
 {
     void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(&_t1)), const_cast<void*>(reinterpret_cast<const void*>(&_t2)) };
     QMetaObject::activate(this, &staticMetaObject, 0, _a);
 }
+
+// SIGNAL 1
+void AddFile::addFileMsg(QString _t1)
+{
+    void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+    QMetaObject::activate(this, &staticMetaObject, 1, _a);
+}
 QT_WARNING_POP
 QT_END_MOC_NAMESPACE
diff --git "a/Server/\344\273\230\346\236\227\346\266\233/code/build-tianKai-Desktop_Qt_5_9_4_MinGW_32bit-Debug/debug/moc_addfile.o" "b/Server/\344\273\230\346\236\227\346\266\233/code/build-tianKai-Desktop_Qt_5_9_4_MinGW_32bit-Debug/debug/moc_addfile.o"
index 094d76e..4987274 100644
--- "a/Server/\344\273\230\346\236\227\346\266\233/code/build-tianKai-Desktop_Qt_5_9_4_MinGW_32bit-Debug/debug/moc_addfile.o"
+++ "b/Server/\344\273\230\346\236\227\346\266\233/code/build-tianKai-Desktop_Qt_5_9_4_MinGW_32bit-Debug/debug/moc_addfile.o"
Binary files differ
diff --git "a/Server/\344\273\230\346\236\227\346\266\233/code/build-tianKai-Desktop_Qt_5_9_4_MinGW_32bit-Debug/debug/moc_release.cpp" "b/Server/\344\273\230\346\236\227\346\266\233/code/build-tianKai-Desktop_Qt_5_9_4_MinGW_32bit-Debug/debug/moc_release.cpp"
index 3313a6f..3b49ca7 100644
--- "a/Server/\344\273\230\346\236\227\346\266\233/code/build-tianKai-Desktop_Qt_5_9_4_MinGW_32bit-Debug/debug/moc_release.cpp"
+++ "b/Server/\344\273\230\346\236\227\346\266\233/code/build-tianKai-Desktop_Qt_5_9_4_MinGW_32bit-Debug/debug/moc_release.cpp"
@@ -21,8 +21,8 @@
 QT_WARNING_PUSH
 QT_WARNING_DISABLE_DEPRECATED
 struct qt_meta_stringdata_Release_t {
-    QByteArrayData data[1];
-    char stringdata0[8];
+    QByteArrayData data[5];
+    char stringdata0[57];
 };
 #define QT_MOC_LITERAL(idx, ofs, len) \
     Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
@@ -31,10 +31,15 @@
     )
 static const qt_meta_stringdata_Release_t qt_meta_stringdata_Release = {
     {
-QT_MOC_LITERAL(0, 0, 7) // "Release"
+QT_MOC_LITERAL(0, 0, 7), // "Release"
+QT_MOC_LITERAL(1, 8, 13), // "releaseSignal"
+QT_MOC_LITERAL(2, 22, 0), // ""
+QT_MOC_LITERAL(3, 23, 21), // "std::shared_ptr<char>"
+QT_MOC_LITERAL(4, 45, 11) // "releaseSlot"
 
     },
-    "Release"
+    "Release\0releaseSignal\0\0std::shared_ptr<char>\0"
+    "releaseSlot"
 };
 #undef QT_MOC_LITERAL
 
@@ -44,22 +49,48 @@
        7,       // revision
        0,       // classname
        0,    0, // classinfo
-       0,    0, // methods
+       2,   14, // methods
        0,    0, // properties
        0,    0, // enums/sets
        0,    0, // constructors
        0,       // flags
-       0,       // signalCount
+       1,       // signalCount
+
+ // signals: name, argc, parameters, tag, flags
+       1,    2,   24,    2, 0x06 /* Public */,
+
+ // slots: name, argc, parameters, tag, flags
+       4,    0,   29,    2, 0x08 /* Private */,
+
+ // signals: parameters
+    QMetaType::Void, 0x80000000 | 3, QMetaType::Int,    2,    2,
+
+ // slots: parameters
+    QMetaType::Void,
 
        0        // eod
 };
 
 void Release::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
 {
-    Q_UNUSED(_o);
-    Q_UNUSED(_id);
-    Q_UNUSED(_c);
-    Q_UNUSED(_a);
+    if (_c == QMetaObject::InvokeMetaMethod) {
+        Release *_t = static_cast<Release *>(_o);
+        Q_UNUSED(_t)
+        switch (_id) {
+        case 0: _t->releaseSignal((*reinterpret_cast< std::shared_ptr<char>(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break;
+        case 1: _t->releaseSlot(); break;
+        default: ;
+        }
+    } else if (_c == QMetaObject::IndexOfMethod) {
+        int *result = reinterpret_cast<int *>(_a[0]);
+        {
+            typedef void (Release::*_t)(std::shared_ptr<char> , int );
+            if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&Release::releaseSignal)) {
+                *result = 0;
+                return;
+            }
+        }
+    }
 }
 
 const QMetaObject Release::staticMetaObject = {
@@ -84,7 +115,25 @@
 int Release::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
 {
     _id = QMainWindow::qt_metacall(_c, _id, _a);
+    if (_id < 0)
+        return _id;
+    if (_c == QMetaObject::InvokeMetaMethod) {
+        if (_id < 2)
+            qt_static_metacall(this, _c, _id, _a);
+        _id -= 2;
+    } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
+        if (_id < 2)
+            *reinterpret_cast<int*>(_a[0]) = -1;
+        _id -= 2;
+    }
     return _id;
 }
+
+// SIGNAL 0
+void Release::releaseSignal(std::shared_ptr<char> _t1, int _t2)
+{
+    void *_a[] = { nullptr, const_cast<void*>(reinterpret_cast<const void*>(&_t1)), const_cast<void*>(reinterpret_cast<const void*>(&_t2)) };
+    QMetaObject::activate(this, &staticMetaObject, 0, _a);
+}
 QT_WARNING_POP
 QT_END_MOC_NAMESPACE
diff --git "a/Server/\344\273\230\346\236\227\346\266\233/code/build-tianKai-Desktop_Qt_5_9_4_MinGW_32bit-Debug/debug/moc_release.o" "b/Server/\344\273\230\346\236\227\346\266\233/code/build-tianKai-Desktop_Qt_5_9_4_MinGW_32bit-Debug/debug/moc_release.o"
index 80d9146..84c8da7 100644
--- "a/Server/\344\273\230\346\236\227\346\266\233/code/build-tianKai-Desktop_Qt_5_9_4_MinGW_32bit-Debug/debug/moc_release.o"
+++ "b/Server/\344\273\230\346\236\227\346\266\233/code/build-tianKai-Desktop_Qt_5_9_4_MinGW_32bit-Debug/debug/moc_release.o"
Binary files differ
diff --git "a/Server/\344\273\230\346\236\227\346\266\233/code/build-tianKai-Desktop_Qt_5_9_4_MinGW_32bit-Debug/debug/moc_uploador.o" "b/Server/\344\273\230\346\236\227\346\266\233/code/build-tianKai-Desktop_Qt_5_9_4_MinGW_32bit-Debug/debug/moc_uploador.o"
index 0126884..4951c72 100644
--- "a/Server/\344\273\230\346\236\227\346\266\233/code/build-tianKai-Desktop_Qt_5_9_4_MinGW_32bit-Debug/debug/moc_uploador.o"
+++ "b/Server/\344\273\230\346\236\227\346\266\233/code/build-tianKai-Desktop_Qt_5_9_4_MinGW_32bit-Debug/debug/moc_uploador.o"
Binary files differ
diff --git "a/Server/\344\273\230\346\236\227\346\266\233/code/build-tianKai-Desktop_Qt_5_9_4_MinGW_32bit-Debug/debug/moc_vcsmainwindow.cpp" "b/Server/\344\273\230\346\236\227\346\266\233/code/build-tianKai-Desktop_Qt_5_9_4_MinGW_32bit-Debug/debug/moc_vcsmainwindow.cpp"
index 4a5d45a..a081d71 100644
--- "a/Server/\344\273\230\346\236\227\346\266\233/code/build-tianKai-Desktop_Qt_5_9_4_MinGW_32bit-Debug/debug/moc_vcsmainwindow.cpp"
+++ "b/Server/\344\273\230\346\236\227\346\266\233/code/build-tianKai-Desktop_Qt_5_9_4_MinGW_32bit-Debug/debug/moc_vcsmainwindow.cpp"
@@ -21,8 +21,8 @@
 QT_WARNING_PUSH
 QT_WARNING_DISABLE_DEPRECATED
 struct qt_meta_stringdata_VCSMainWindow_t {
-    QByteArrayData data[7];
-    char stringdata0[121];
+    QByteArrayData data[10];
+    char stringdata0[165];
 };
 #define QT_MOC_LITERAL(idx, ofs, len) \
     Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
@@ -32,18 +32,22 @@
 static const qt_meta_stringdata_VCSMainWindow_t qt_meta_stringdata_VCSMainWindow = {
     {
 QT_MOC_LITERAL(0, 0, 13), // "VCSMainWindow"
-QT_MOC_LITERAL(1, 14, 21), // "on_pushButton_clicked"
-QT_MOC_LITERAL(2, 36, 0), // ""
-QT_MOC_LITERAL(3, 37, 23), // "on_pushButton_2_clicked"
-QT_MOC_LITERAL(4, 61, 23), // "on_pushButton_4_clicked"
-QT_MOC_LITERAL(5, 85, 23), // "on_pushButton_3_clicked"
-QT_MOC_LITERAL(6, 109, 11) // "addFileSlot"
+QT_MOC_LITERAL(1, 14, 13), // "releaseSignal"
+QT_MOC_LITERAL(2, 28, 0), // ""
+QT_MOC_LITERAL(3, 29, 21), // "on_pushButton_clicked"
+QT_MOC_LITERAL(4, 51, 23), // "on_pushButton_2_clicked"
+QT_MOC_LITERAL(5, 75, 23), // "on_pushButton_4_clicked"
+QT_MOC_LITERAL(6, 99, 23), // "on_pushButton_3_clicked"
+QT_MOC_LITERAL(7, 123, 11), // "addFileSlot"
+QT_MOC_LITERAL(8, 135, 21), // "std::shared_ptr<char>"
+QT_MOC_LITERAL(9, 157, 7) // "msgSlot"
 
     },
-    "VCSMainWindow\0on_pushButton_clicked\0"
-    "\0on_pushButton_2_clicked\0"
+    "VCSMainWindow\0releaseSignal\0\0"
+    "on_pushButton_clicked\0on_pushButton_2_clicked\0"
     "on_pushButton_4_clicked\0on_pushButton_3_clicked\0"
-    "addFileSlot"
+    "addFileSlot\0std::shared_ptr<char>\0"
+    "msgSlot"
 };
 #undef QT_MOC_LITERAL
 
@@ -53,26 +57,34 @@
        7,       // revision
        0,       // classname
        0,    0, // classinfo
-       5,   14, // methods
+       7,   14, // methods
        0,    0, // properties
        0,    0, // enums/sets
        0,    0, // constructors
        0,       // flags
-       0,       // signalCount
+       1,       // signalCount
+
+ // signals: name, argc, parameters, tag, flags
+       1,    0,   49,    2, 0x06 /* Public */,
 
  // slots: name, argc, parameters, tag, flags
-       1,    0,   39,    2, 0x08 /* Private */,
-       3,    0,   40,    2, 0x08 /* Private */,
-       4,    0,   41,    2, 0x08 /* Private */,
-       5,    0,   42,    2, 0x08 /* Private */,
-       6,    2,   43,    2, 0x08 /* Private */,
+       3,    0,   50,    2, 0x08 /* Private */,
+       4,    0,   51,    2, 0x08 /* Private */,
+       5,    0,   52,    2, 0x08 /* Private */,
+       6,    0,   53,    2, 0x08 /* Private */,
+       7,    2,   54,    2, 0x08 /* Private */,
+       9,    1,   59,    2, 0x08 /* Private */,
+
+ // signals: parameters
+    QMetaType::Void,
 
  // slots: parameters
     QMetaType::Void,
     QMetaType::Void,
     QMetaType::Void,
     QMetaType::Void,
-    QMetaType::Void, QMetaType::QString, QMetaType::QString,    2,    2,
+    QMetaType::Void, 0x80000000 | 8, QMetaType::Int,    2,    2,
+    QMetaType::Void, QMetaType::QString,    2,
 
        0        // eod
 };
@@ -83,12 +95,23 @@
         VCSMainWindow *_t = static_cast<VCSMainWindow *>(_o);
         Q_UNUSED(_t)
         switch (_id) {
-        case 0: _t->on_pushButton_clicked(); break;
-        case 1: _t->on_pushButton_2_clicked(); break;
-        case 2: _t->on_pushButton_4_clicked(); break;
-        case 3: _t->on_pushButton_3_clicked(); break;
-        case 4: _t->addFileSlot((*reinterpret_cast< QString(*)>(_a[1])),(*reinterpret_cast< QString(*)>(_a[2]))); break;
+        case 0: _t->releaseSignal(); break;
+        case 1: _t->on_pushButton_clicked(); break;
+        case 2: _t->on_pushButton_2_clicked(); break;
+        case 3: _t->on_pushButton_4_clicked(); break;
+        case 4: _t->on_pushButton_3_clicked(); break;
+        case 5: _t->addFileSlot((*reinterpret_cast< std::shared_ptr<char>(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break;
+        case 6: _t->msgSlot((*reinterpret_cast< QString(*)>(_a[1]))); break;
         default: ;
+        }
+    } else if (_c == QMetaObject::IndexOfMethod) {
+        int *result = reinterpret_cast<int *>(_a[0]);
+        {
+            typedef void (VCSMainWindow::*_t)();
+            if (*reinterpret_cast<_t *>(_a[1]) == static_cast<_t>(&VCSMainWindow::releaseSignal)) {
+                *result = 0;
+                return;
+            }
         }
     }
 }
@@ -118,15 +141,21 @@
     if (_id < 0)
         return _id;
     if (_c == QMetaObject::InvokeMetaMethod) {
-        if (_id < 5)
+        if (_id < 7)
             qt_static_metacall(this, _c, _id, _a);
-        _id -= 5;
+        _id -= 7;
     } else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
-        if (_id < 5)
+        if (_id < 7)
             *reinterpret_cast<int*>(_a[0]) = -1;
-        _id -= 5;
+        _id -= 7;
     }
     return _id;
 }
+
+// SIGNAL 0
+void VCSMainWindow::releaseSignal()
+{
+    QMetaObject::activate(this, &staticMetaObject, 0, nullptr);
+}
 QT_WARNING_POP
 QT_END_MOC_NAMESPACE
diff --git "a/Server/\344\273\230\346\236\227\346\266\233/code/build-tianKai-Desktop_Qt_5_9_4_MinGW_32bit-Debug/debug/moc_vcsmainwindow.o" "b/Server/\344\273\230\346\236\227\346\266\233/code/build-tianKai-Desktop_Qt_5_9_4_MinGW_32bit-Debug/debug/moc_vcsmainwindow.o"
index 4aa6ad0..382f536 100644
--- "a/Server/\344\273\230\346\236\227\346\266\233/code/build-tianKai-Desktop_Qt_5_9_4_MinGW_32bit-Debug/debug/moc_vcsmainwindow.o"
+++ "b/Server/\344\273\230\346\236\227\346\266\233/code/build-tianKai-Desktop_Qt_5_9_4_MinGW_32bit-Debug/debug/moc_vcsmainwindow.o"
Binary files differ
diff --git "a/Server/\344\273\230\346\236\227\346\266\233/code/build-tianKai-Desktop_Qt_5_9_4_MinGW_32bit-Debug/debug/release.o" "b/Server/\344\273\230\346\236\227\346\266\233/code/build-tianKai-Desktop_Qt_5_9_4_MinGW_32bit-Debug/debug/release.o"
index 7c77d52..fe52302 100644
--- "a/Server/\344\273\230\346\236\227\346\266\233/code/build-tianKai-Desktop_Qt_5_9_4_MinGW_32bit-Debug/debug/release.o"
+++ "b/Server/\344\273\230\346\236\227\346\266\233/code/build-tianKai-Desktop_Qt_5_9_4_MinGW_32bit-Debug/debug/release.o"
Binary files differ
diff --git "a/Server/\344\273\230\346\236\227\346\266\233/code/build-tianKai-Desktop_Qt_5_9_4_MinGW_32bit-Debug/debug/tianKai.exe" "b/Server/\344\273\230\346\236\227\346\266\233/code/build-tianKai-Desktop_Qt_5_9_4_MinGW_32bit-Debug/debug/tianKai.exe"
index be7d539..00b3620 100644
--- "a/Server/\344\273\230\346\236\227\346\266\233/code/build-tianKai-Desktop_Qt_5_9_4_MinGW_32bit-Debug/debug/tianKai.exe"
+++ "b/Server/\344\273\230\346\236\227\346\266\233/code/build-tianKai-Desktop_Qt_5_9_4_MinGW_32bit-Debug/debug/tianKai.exe"
Binary files differ
diff --git "a/Server/\344\273\230\346\236\227\346\266\233/code/build-tianKai-Desktop_Qt_5_9_4_MinGW_32bit-Debug/debug/uploador.o" "b/Server/\344\273\230\346\236\227\346\266\233/code/build-tianKai-Desktop_Qt_5_9_4_MinGW_32bit-Debug/debug/uploador.o"
index b8dda45..e810763 100644
--- "a/Server/\344\273\230\346\236\227\346\266\233/code/build-tianKai-Desktop_Qt_5_9_4_MinGW_32bit-Debug/debug/uploador.o"
+++ "b/Server/\344\273\230\346\236\227\346\266\233/code/build-tianKai-Desktop_Qt_5_9_4_MinGW_32bit-Debug/debug/uploador.o"
Binary files differ
diff --git "a/Server/\344\273\230\346\236\227\346\266\233/code/build-tianKai-Desktop_Qt_5_9_4_MinGW_32bit-Debug/debug/vcsmainwindow.o" "b/Server/\344\273\230\346\236\227\346\266\233/code/build-tianKai-Desktop_Qt_5_9_4_MinGW_32bit-Debug/debug/vcsmainwindow.o"
index c40db3e..cec2bf8 100644
--- "a/Server/\344\273\230\346\236\227\346\266\233/code/build-tianKai-Desktop_Qt_5_9_4_MinGW_32bit-Debug/debug/vcsmainwindow.o"
+++ "b/Server/\344\273\230\346\236\227\346\266\233/code/build-tianKai-Desktop_Qt_5_9_4_MinGW_32bit-Debug/debug/vcsmainwindow.o"
Binary files differ
diff --git "a/Server/\344\273\230\346\236\227\346\266\233/code/tianKai/addfile.cpp" "b/Server/\344\273\230\346\236\227\346\266\233/code/tianKai/addfile.cpp"
index 0601789..3c6e5c0 100644
--- "a/Server/\344\273\230\346\236\227\346\266\233/code/tianKai/addfile.cpp"
+++ "b/Server/\344\273\230\346\236\227\346\266\233/code/tianKai/addfile.cpp"
@@ -4,7 +4,7 @@
 #include <QDebug>
 #include <QDateTime>
 #include <QString>
-
+#include <memory>
 #define DEFAULT_PATH ("E:\soft")
 #define DEFAULT_TYPE (tr("Pkg Files (*.zip *.tar.gz *.rar *.7z *.bz2)"))
 #define UPLOAD 10
@@ -52,8 +52,92 @@
                         + createDate.toString() + "#"
                         + description;
     qDebug()<<versionMessage;
-
-    emit addFileSignal(file, versionMessage);
+    // 鑾峰彇鏂囦欢鍩烘湰淇℃伅
+    QString fileName = fileInfo.fileName();
+    qint64 size = fileInfo.size();
 
 
+
+    //  璁$畻澶存秷鎭暱搴︼紝骞跺垎閰嶇┖闂�
+    // 澶存秷鎭紙绀轰緥锛�
+    int len = sizeof(UpLoadPkgHead) + fileName.size() + 1;
+
+    std::shared_ptr<char> head(new char[len],[](char *p){delete[] p;});
+    UpLoadPkgHead* pHead = reinterpret_cast<UpLoadPkgHead*>(head.get());
+
+    // 鐩存帴鎿嶄綔鏅鸿兘鎸囬拡绠$悊鐨勫唴瀛�
+    pHead->head.type = UPLOAD_REQ;
+    pHead->head.len = len;
+    memcpy(pHead->fileName, fileName.toUtf8().constData(), fileName.size());
+    pHead->fileName[fileName.size()] = '\0';
+
+    emit addFileSignal(head, len);  // 鐩存帴浼犻�掓櫤鑳芥寚閽�
+
+
+    QFile *pFile = new QFile(file);
+    if(!pFile){
+        return;
+    }
+
+    // 璇绘枃浠跺唴瀹�
+
+    if (!pFile->open(QIODevice::ReadOnly)) {
+        qDebug() << "Failed to open file for reading:" << pFile->errorString();
+        return;
+    }
+//    const int bufferSize = 4 * 1024;
+    const int bufferSize = 8 * 1024;
+    auto buffer = std::unique_ptr<char>(new char[bufferSize]);
+    qint64 totalBytesRead = 0;
+    int flag = 0;
+    while (!pFile->atEnd()) {
+        qint64 bytesRead = pFile->read(buffer.get(), bufferSize);
+        if (bytesRead == -1) {
+            qDebug() << "Error during read operation:" << pFile->errorString();
+            break;
+        }
+        totalBytesRead += bytesRead;
+
+        // 鏁版嵁鍖呮瀯閫狅紙绀轰緥锛�
+        int dtlen = sizeof(UpLoadPkgData) + fileName.size() + bytesRead + 2;
+        std::shared_ptr<char> dataPkg(new char[dtlen],[](char *p){delete[] p;});
+        UpLoadPkgData* pData = reinterpret_cast<UpLoadPkgData*>(dataPkg.get());
+
+        // 濉厖鏁版嵁
+        pData->head.len = len;
+        pData->head.type = UPLOAD_REQ;
+        pData->upLoadType = DATA_UPLOAD_REQ;
+        pData->fileNameLen = fileName.size();
+        pData->dataLen = bytesRead;
+        pData->flag = ++flag;
+        pData->dataLen = bytesRead;
+        memcpy(pData->data, fileName.toUtf8().constData(), fileName.size());
+        memcpy(pData->data + fileName.size() + 1, buffer.get(), bytesRead);
+
+        emit addFileSignal(dataPkg, dtlen);
+        // 鏃犻渶鎵嬪姩 free锛宻hared_ptr 鑷姩閲婃斁
+
+    }
+    if(totalBytesRead != size){
+        qDebug()<<"鏁版嵁鍙戦�佷笉瀹屾暣";
+        return;
+    }
+    qDebug()<<"鏁版嵁鍙戦�佸畬鎴愶紝鍙戦�佹暟鎹簱鍖�";
+
+    int finLen = sizeof(UpLoadPkgFin)+fileName.size()+versionMessage.size()+2;
+    std::shared_ptr<char> finPkg(new char[finLen],[](char *p){delete[] p;});
+    UpLoadPkgFin* pData = reinterpret_cast<UpLoadPkgFin*>(finPkg.get());
+
+    // 濉厖鏁版嵁
+    pData->head.len = finLen;
+    pData->head.type = UPLOAD_REQ;
+    pData->fileNameLen = fileName.size();
+    pData->cnt = flag;
+    memcpy(pData->fileName, fileName.toUtf8().constData(), fileName.size());
+    memcpy(pData->fileName + fileName.size() + 1,versionMessage.data(),versionMessage.size());
+
+    emit addFileSignal(finPkg ,finLen);
+    emit addFileMsg(QString("涓婁紶鎴愬姛锛�"));
+
+    delete pFile;
 }
diff --git "a/Server/\344\273\230\346\236\227\346\266\233/code/tianKai/addfile.h" "b/Server/\344\273\230\346\236\227\346\266\233/code/tianKai/addfile.h"
index a4fe1d1..eedd401 100644
--- "a/Server/\344\273\230\346\236\227\346\266\233/code/tianKai/addfile.h"
+++ "b/Server/\344\273\230\346\236\227\346\266\233/code/tianKai/addfile.h"
@@ -5,6 +5,9 @@
 #include "addfile.h"
 #include <struct_data.h>
 #include "uploador.h"
+extern std::mutex _mutex;
+extern std::condition_variable _conv;
+extern int g_flag;
 namespace Ui {
 class AddFile;
 }
@@ -18,7 +21,8 @@
     ~AddFile();
 
 signals:
-    void addFileSignal(QString, QString);
+    void addFileSignal(std::shared_ptr<char>, int);
+    void addFileMsg(QString);
 private slots:
     void on_pushButton_3_clicked();
     void on_pushButton_clicked();
diff --git "a/Server/\344\273\230\346\236\227\346\266\233/code/tianKai/release.cpp" "b/Server/\344\273\230\346\236\227\346\266\233/code/tianKai/release.cpp"
index 6dfd0e8..fb6af20 100644
--- "a/Server/\344\273\230\346\236\227\346\266\233/code/tianKai/release.cpp"
+++ "b/Server/\344\273\230\346\236\227\346\266\233/code/tianKai/release.cpp"
@@ -1,6 +1,7 @@
 #include "release.h"
 #include "ui_release.h"
-
+#include "struct_data.h"
+#include <QDebug>
 Release::Release(QWidget *parent) :
     QMainWindow(parent),
     ui(new Ui::Release)
@@ -13,3 +14,13 @@
 {
     delete ui;
 }
+
+void Release::releaseSlot()
+{
+    ReleaseReq* req = new ReleaseReq();
+    int len = req->head.len;
+    std::shared_ptr<char> buf(new char[len],[](char *p){delete[] p;});
+    memcpy(buf.get(),req,len);
+    qDebug()<<"鏌ヨ鍙戝竷淇℃伅";
+    emit releaseSignal(buf,len);
+}
diff --git "a/Server/\344\273\230\346\236\227\346\266\233/code/tianKai/release.h" "b/Server/\344\273\230\346\236\227\346\266\233/code/tianKai/release.h"
index 3f40cda..08ff2e3 100644
--- "a/Server/\344\273\230\346\236\227\346\266\233/code/tianKai/release.h"
+++ "b/Server/\344\273\230\346\236\227\346\266\233/code/tianKai/release.h"
@@ -2,7 +2,7 @@
 #define RELEASE_H
 
 #include <QMainWindow>
-
+#include <memory>
 namespace Ui {
 class Release;
 }
@@ -14,6 +14,10 @@
 public:
     explicit Release(QWidget *parent = 0);
     ~Release();
+signals:
+    void releaseSignal(std::shared_ptr<char>,int);
+private slots:
+    void releaseSlot();
 
 private:
     Ui::Release *ui;
diff --git "a/Server/\344\273\230\346\236\227\346\266\233/code/tianKai/struct_data.h" "b/Server/\344\273\230\346\236\227\346\266\233/code/tianKai/struct_data.h"
index 474bb2d..27ff32b 100644
--- "a/Server/\344\273\230\346\236\227\346\266\233/code/tianKai/struct_data.h"
+++ "b/Server/\344\273\230\346\236\227\346\266\233/code/tianKai/struct_data.h"
@@ -1,13 +1,15 @@
 #ifndef STRUCT_DATA_H
 #define STRUCT_DATA_H
-
-
+#include <mutex>
+#include <condition_variable>
 enum TypeInfo{
     UPLOAD_REQ = 100,
     HEAD_UPLOAD_REQ,
     DATA_UPLOAD_REQ,
     UP_LOAD_FIN,
     UPLOAD_SQL_REQ,
+    RELEASE_SQL_REQ,
+    RELEASE_SQL_RES,
     HEART_CHECK_REQ,
     HEART_CHECK_RES
 };
@@ -54,7 +56,13 @@
     Head head;
 
 };
-
+struct ReleaseReq {
+    Head head;
+    ReleaseReq(){
+        head.len = sizeof(ReleaseReq);
+        head.type = RELEASE_SQL_REQ;
+    }
+};
 struct HeartCheckReq  // 蹇冭烦璇锋眰鍖�
 {
     Head head;
@@ -74,4 +82,5 @@
         head.len = sizeof(HeartCheckRes);
     }
 };
+
 #endif // STRUCT_DATA_H
diff --git "a/Server/\344\273\230\346\236\227\346\266\233/code/tianKai/tianKai.pro.user" "b/Server/\344\273\230\346\236\227\346\266\233/code/tianKai/tianKai.pro.user"
index 3640a29..b271ff6 100644
--- "a/Server/\344\273\230\346\236\227\346\266\233/code/tianKai/tianKai.pro.user"
+++ "b/Server/\344\273\230\346\236\227\346\266\233/code/tianKai/tianKai.pro.user"
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE QtCreatorProject>
-<!-- Written by QtCreator 4.5.0, 2025-07-28T12:08:12. -->
+<!-- Written by QtCreator 4.5.0, 2025-07-29T15:00:31. -->
 <qtcreator>
  <data>
   <variable>EnvironmentId</variable>
diff --git "a/Server/\344\273\230\346\236\227\346\266\233/code/tianKai/uploador.cpp" "b/Server/\344\273\230\346\236\227\346\266\233/code/tianKai/uploador.cpp"
index 299449c..c464783 100644
--- "a/Server/\344\273\230\346\236\227\346\266\233/code/tianKai/uploador.cpp"
+++ "b/Server/\344\273\230\346\236\227\346\266\233/code/tianKai/uploador.cpp"
@@ -44,16 +44,18 @@
     }
 }
 
-int UpLoador::upfile(char* data, int rlen)
+int UpLoador::upfile(std::shared_ptr<char> buf, int rlen)
 {
-    if(data == nullptr || rlen <= 0){
+    if (!buf || rlen <= 0) {  // 妫�鏌ユ櫤鑳芥寚閽堟槸鍚︿负绌�
         return -1;
     }
-    if(m_client){
-        int len = m_client->write((char*)data,rlen);
-        qDebug()<<len;
+    if (m_client) {
+        // 鍏抽敭淇敼锛氱敤 buf.get() 鑾峰彇鍘熷鎸囬拡
+        int len = m_client->write(reinterpret_cast<char*>(buf.get()), rlen);
+        qDebug() << "Sent bytes:" << len;
         return len;
     }
+    return -1;  // 琛ュ厖杩斿洖鍊�
 }
 
 void UpLoador::myRead()
diff --git "a/Server/\344\273\230\346\236\227\346\266\233/code/tianKai/uploador.h" "b/Server/\344\273\230\346\236\227\346\266\233/code/tianKai/uploador.h"
index 6d6b399..b8de82a 100644
--- "a/Server/\344\273\230\346\236\227\346\266\233/code/tianKai/uploador.h"
+++ "b/Server/\344\273\230\346\236\227\346\266\233/code/tianKai/uploador.h"
@@ -30,7 +30,7 @@
 private:
     void processBuffer();
 public:
-    int upfile(char* data, int rlen);
+    int upfile(std::shared_ptr<char> buf, int rlen);
 };
 
 #endif // UPLOADOR_H
diff --git "a/Server/\344\273\230\346\236\227\346\266\233/code/tianKai/vcsmainwindow.cpp" "b/Server/\344\273\230\346\236\227\346\266\233/code/tianKai/vcsmainwindow.cpp"
index a711c3e..288f764 100644
--- "a/Server/\344\273\230\346\236\227\346\266\233/code/tianKai/vcsmainwindow.cpp"
+++ "b/Server/\344\273\230\346\236\227\346\266\233/code/tianKai/vcsmainwindow.cpp"
@@ -3,6 +3,10 @@
 
 #include <QFileInfo>
 #include <QMessageBox>
+#include "struct_data.h"
+std::mutex _mutex;
+std::condition_variable _conv;
+int g_flag = 1;
 VCSMainWindow::VCSMainWindow(QWidget *parent) :
     QMainWindow(parent),
     ui(new Ui::VCSMainWindow)
@@ -22,8 +26,10 @@
     ui->stackedWidget->setCurrentWidget(m_addFile);
 
 
-    connect(m_addFile,SIGNAL(addFileSignal(QString, QString)),this,SLOT(addFileSlot(QString, QString)));
-
+    connect(m_addFile,SIGNAL(addFileSignal(std::shared_ptr<char>,int)),this,SLOT(addFileSlot(std::shared_ptr<char>,int)));
+    connect(this,SIGNAL(releaseSignal()),m_release,SLOT(releaseSlot()));
+    connect(m_addFile,SIGNAL(addFileMsg(QString)),this,SLOT(msgSlot(QString)));
+    connect(m_release,SIGNAL(releaseSignal(std::shared_ptr<char>,int)),this,SLOT(addFileSlot(std::shared_ptr<char>,int)));
 }
 
 VCSMainWindow::~VCSMainWindow()
@@ -36,9 +42,11 @@
     ui->stackedWidget->setCurrentWidget(m_addFile);
 }
 
+// 涓婁紶
 void VCSMainWindow::on_pushButton_2_clicked()
 {
     ui->stackedWidget->setCurrentWidget(m_release);
+    emit releaseSignal();
 }
 
 void VCSMainWindow::on_pushButton_4_clicked()
@@ -51,115 +59,21 @@
     ui->stackedWidget->setCurrentWidget(m_readLog);
 }
 
-void VCSMainWindow::addFileSlot(QString file, QString versionMessage)
+void VCSMainWindow::addFileSlot(std::shared_ptr<char> buf, int len)
 {
-    QFileInfo fileInfo(file);
-    // 鑾峰彇鏂囦欢鍩烘湰淇℃伅
-    QString fileName = fileInfo.fileName();
-    qint64 size = fileInfo.size();
+        if (!buf || len <= 0) {
 
-
-
-    //  璁$畻澶存秷鎭暱搴︼紝骞跺垎閰嶇┖闂�
-    int len = sizeof(UpLoadPkgHead)+fileName.size()+1;
-    UpLoadPkgHead *head = (UpLoadPkgHead*)malloc(len);
-
-    // 澶存秷鎭俊鎭~鍏�
-    head->head.type = UPLOAD_REQ;
-    head->head.len = len;
-    head->upLoadType = HEAD_UPLOAD_REQ;
-    head->fileNameLen = fileName.size();
-    memcpy(head->fileName,fileName.data(),fileName.size());
-    head->fileName[fileName.size()] = '\0';
-
-    // 鍙戦�佸ご娑堟伅
-
-    int ret = m_upLoad->upfile((char*)head,len);
-    if(ret < len){
-        qDebug()<<"浼犺緭鏈夐棶棰�: ";
-        free(head);
-        head = nullptr;
-        return ;
-    }
-    free(head);
-    head = nullptr;
-    QFile *pFile = new QFile(file);
-    if(!pFile){
-        return;
-    }
-
-    // 璇绘枃浠跺唴瀹�
-
-    if (!pFile->open(QIODevice::ReadOnly)) {
-        qDebug() << "Failed to open file for reading:" << pFile->errorString();
-        m_msg->warning(nullptr, "鎻愮ず", "鏂囦欢鎵撳紑澶辫触");
-        return;
-    }
-    const int bufferSize = 8 * 1024;
-    char buffer[bufferSize] = {0};
-
-    qint64 totalBytesRead = 0;
-    int flag = 0;
-    while (!pFile->atEnd()) {
-        qint64 bytesRead = pFile->read(buffer, bufferSize);
-        if (bytesRead == -1) {
-            qDebug() << "Error during read operation:" << pFile->errorString();
-            break;
+            return;
         }
-        totalBytesRead += bytesRead;
-        int dtlen = sizeof(UpLoadPkgData)+fileName.size()+bytesRead+2;
-        UpLoadPkgData *dataPkg = (UpLoadPkgData *)malloc(dtlen);
-        memset(dataPkg, 0, dtlen);
-        dataPkg->head.len = len;
-        dataPkg->head.type = UPLOAD_REQ;
-        dataPkg->upLoadType = DATA_UPLOAD_REQ;
-        dataPkg->fileNameLen = fileName.size();
-        dataPkg->dataLen = bytesRead;
-        dataPkg->flag = ++flag;
-        memcpy(dataPkg->data,fileName.data(),fileName.size());
-        dataPkg->data[fileName.size()] = '\0';
-        strcpy(&(dataPkg->data[fileName.size()+1]),buffer);
-        ret = m_upLoad->upfile((char*)dataPkg,dtlen);
-        if(ret < dtlen){
-            qDebug()<<"鏁版嵁浼犺緭鏈夐棶棰�";
-            free(dataPkg);
-            dataPkg = nullptr;
-            m_msg->warning(nullptr, "鎻愮ず", "鏁版嵁浼犺緭鏈夐棶棰�");
-            return ;
+        int ret = m_upLoad->upfile(buf, len);  // 澶勭悊鏁版嵁
+        if(ret < len){
+            qDebug()<<"浼犺緭鏈夐棶棰�";
         }
-        free(dataPkg);
-        dataPkg = nullptr;
-    }
-    if(totalBytesRead != size){
-        qDebug()<<"鏁版嵁鍙戦�佷笉瀹屾暣";
-        m_msg->warning(nullptr, "鎻愮ず", "鏁版嵁鍙戦�佷笉瀹屾暣");
-        return;
-    }
-    qDebug()<<"鏁版嵁鍙戦�佸畬鎴愶紝鍙戦�佹暟鎹簱鍖�";
-
-    int finLen = sizeof(UpLoadPkgFin)+fileName.size()+versionMessage.size()+2;
-    UpLoadPkgFin *finPkg = (UpLoadPkgFin *)malloc(finLen);
-    finPkg->head.len = finLen;
-    finPkg->head.type = UPLOAD_REQ;
-    finPkg->fileNameLen = fileName.size();
-    finPkg->cnt = flag;
-    memcpy(finPkg->fileName,fileName.data(),fileName.size());
-    finPkg->fileName[fileName.size()] = '\0';
-    memcpy(&(finPkg->fileName[fileName.size()+1]),versionMessage.data(),versionMessage.size());
-    finPkg->fileName[fileName.size()+versionMessage.size()+1] = '\0';
-
-    ret = m_upLoad->upfile((char*)finPkg,finLen);
-    if(ret < finLen){
-        qDebug()<<"fin鍖呬紶杈撴湁闂";
-        free(finPkg);
-        finPkg = nullptr;
-        m_msg->warning(nullptr, "鎻愮ず", "涓婁紶澶辫触锛�");
-        return ;
-    }
-    free(finPkg);
-    finPkg = nullptr;
-    qDebug()<<"鏁版嵁搴撳寘鍙戦�佸畬鎴�";
-
-    m_msg->information(nullptr, "鎻愮ず", "涓婁紶鎴愬姛锛�");
 
 }
+
+void VCSMainWindow::msgSlot(QString msg)
+{
+    m_msg->information(this,"鎻愮ず",msg);
+}
+
diff --git "a/Server/\344\273\230\346\236\227\346\266\233/code/tianKai/vcsmainwindow.h" "b/Server/\344\273\230\346\236\227\346\266\233/code/tianKai/vcsmainwindow.h"
index bc61f25..31d268a 100644
--- "a/Server/\344\273\230\346\236\227\346\266\233/code/tianKai/vcsmainwindow.h"
+++ "b/Server/\344\273\230\346\236\227\346\266\233/code/tianKai/vcsmainwindow.h"
@@ -20,7 +20,8 @@
 public:
     explicit VCSMainWindow(QWidget *parent = 0);
     ~VCSMainWindow();
-
+signals:
+    void releaseSignal();
 private slots:
     void on_pushButton_clicked();
 
@@ -30,7 +31,9 @@
 
     void on_pushButton_3_clicked();
 
-    void addFileSlot(QString, QString);
+    void addFileSlot(std::shared_ptr<char>,int);
+    void msgSlot(QString);
+
 
 private:
     Ui::VCSMainWindow *ui;
diff --git "a/Server/\344\273\230\346\236\227\346\266\233/log/~WRL0001.tmp" "b/Server/\344\273\230\346\236\227\346\266\233/log/\346\227\245\345\277\227_\344\273\230\346\236\227\346\266\233_0729.doc"
similarity index 77%
rename from "Server/\344\273\230\346\236\227\346\266\233/log/~WRL0001.tmp"
rename to "Server/\344\273\230\346\236\227\346\266\233/log/\346\227\245\345\277\227_\344\273\230\346\236\227\346\266\233_0729.doc"
index 9f83358..33a4bee 100644
--- "a/Server/\344\273\230\346\236\227\346\266\233/log/~WRL0001.tmp"
+++ "b/Server/\344\273\230\346\236\227\346\266\233/log/\346\227\245\345\277\227_\344\273\230\346\236\227\346\266\233_0729.doc"
Binary files differ
diff --git "a/Server/\344\273\230\346\236\227\346\266\233/log/~WRL0001.tmp" "b/Server/\345\210\230\345\210\233\344\270\226/log/\346\227\245\345\277\227_\345\210\230\345\210\233\344\270\226_2025-07-30.doc"
similarity index 69%
copy from "Server/\344\273\230\346\236\227\346\266\233/log/~WRL0001.tmp"
copy to "Server/\345\210\230\345\210\233\344\270\226/log/\346\227\245\345\277\227_\345\210\230\345\210\233\344\270\226_2025-07-30.doc"
index 9f83358..2383f29 100644
--- "a/Server/\344\273\230\346\236\227\346\266\233/log/~WRL0001.tmp"
+++ "b/Server/\345\210\230\345\210\233\344\270\226/log/\346\227\245\345\277\227_\345\210\230\345\210\233\344\270\226_2025-07-30.doc"
Binary files differ
diff --git "a/Server/\344\273\230\346\236\227\346\266\233/log/~WRL0001.tmp" "b/Server/\346\235\216\346\231\250\351\243\236/log/\346\227\245\345\277\227_\346\235\216\346\231\250\351\243\236_0729.doc"
similarity index 67%
copy from "Server/\344\273\230\346\236\227\346\266\233/log/~WRL0001.tmp"
copy to "Server/\346\235\216\346\231\250\351\243\236/log/\346\227\245\345\277\227_\346\235\216\346\231\250\351\243\236_0729.doc"
index 9f83358..1828343 100644
--- "a/Server/\344\273\230\346\236\227\346\266\233/log/~WRL0001.tmp"
+++ "b/Server/\346\235\216\346\231\250\351\243\236/log/\346\227\245\345\277\227_\346\235\216\346\231\250\351\243\236_0729.doc"
Binary files differ
diff --git "a/Server/\351\203\255\351\223\255\351\270\277/log/\346\227\245\345\277\227_\351\203\255\351\223\255\351\270\277_0729.doc" "b/Server/\351\203\255\351\223\255\351\270\277/log/\346\227\245\345\277\227_\351\203\255\351\223\255\351\270\277_0729.doc"
new file mode 100644
index 0000000..7568819
--- /dev/null
+++ "b/Server/\351\203\255\351\223\255\351\270\277/log/\346\227\245\345\277\227_\351\203\255\351\223\255\351\270\277_0729.doc"
Binary files differ

--
Gitblit v1.8.0