去掉重复上传时不必要的文件

This commit is contained in:
luoliangyi 2022-12-22 17:28:50 +08:00
parent 4a855c495f
commit a20dcac343
2 changed files with 58 additions and 32 deletions

View File

@ -1565,36 +1565,19 @@ HGResult HGPdtToolDbDeviceImpl::DownloadEntryImage(HGUInt entryName, const HGCha
return HGBASE_ERR_INVALIDARG; return HGBASE_ERR_INVALIDARG;
} }
char sqlCmd[1024] = { 0 }; std::string remotePath;
sprintf(sqlCmd, "select %s from inspection_image where sn = '%s';", entryNameStr, m_sn.c_str()); HGResult res = GetEntryImageRemotePath(entryNameStr, remotePath);
int ret = mysql_query(m_userMgr->m_sql, sqlCmd); if (HGBASE_ERR_OK != res)
if (0 != ret)
{ {
return HGBASE_ERR_FAIL;
}
MYSQL_RES* sqlRes = mysql_use_result(m_userMgr->m_sql);
if (NULL == sqlRes)
{
return HGBASE_ERR_FAIL;
}
MYSQL_ROW row = mysql_fetch_row(sqlRes);
if (NULL == row)
{
mysql_free_result(sqlRes);
return HGBASE_ERR_FAIL;
}
if (NULL == row[0])
{
mysql_free_result(sqlRes);
return HGBASE_ERR_FAIL;
}
HGResult res = DownloadFile(ftpHost, ftpPort, row[0], fileName);
mysql_free_result(sqlRes);
return res; return res;
}
if (remotePath.empty())
{
return HGBASE_ERR_FAIL;
}
return DownloadFile(ftpHost, ftpPort, remotePath.c_str(), fileName);
} }
HGResult HGPdtToolDbDeviceImpl::UploadEntryImage(HGUInt entryName, const HGChar* ftpHost, HGUShort ftpPort, const HGChar* fileName) HGResult HGPdtToolDbDeviceImpl::UploadEntryImage(HGUInt entryName, const HGChar* ftpHost, HGUShort ftpPort, const HGChar* fileName)
@ -1617,12 +1600,21 @@ HGResult HGPdtToolDbDeviceImpl::UploadEntryImage(HGUInt entryName, const HGChar*
return HGBASE_ERR_INVALIDARG; return HGBASE_ERR_INVALIDARG;
} }
std::string remotePath;
HGResult res = GetEntryImageRemotePath(entryNameStr, remotePath);
if (HGBASE_ERR_OK != res)
{
return res;
}
if (remotePath.empty())
{
HGChar uuid[256]; HGChar uuid[256];
HGBase_GetUuid(uuid, 256); HGBase_GetUuid(uuid, 256);
HGChar remotePath[256]; remotePath = std::string("/upload/") + uuid + ".jpg";
sprintf(remotePath, "/upload/%s.jpg", uuid); }
HGResult res = UploadFile(ftpHost, ftpPort, fileName, remotePath); res = UploadFile(ftpHost, ftpPort, fileName, remotePath.c_str());
if (HGBASE_ERR_OK != res) if (HGBASE_ERR_OK != res)
{ {
return res; return res;
@ -1638,7 +1630,7 @@ HGResult HGPdtToolDbDeviceImpl::UploadEntryImage(HGUInt entryName, const HGChar*
} }
sprintf(sqlCmd, "update inspection_image set %s = '%s' where sn = '%s';", sprintf(sqlCmd, "update inspection_image set %s = '%s' where sn = '%s';",
entryNameStr, remotePath, m_sn.c_str()); entryNameStr, remotePath.c_str(), m_sn.c_str());
ret = mysql_query(m_userMgr->m_sql, sqlCmd); ret = mysql_query(m_userMgr->m_sql, sqlCmd);
if (0 != ret) if (0 != ret)
{ {
@ -1694,6 +1686,39 @@ const HGChar* HGPdtToolDbDeviceImpl::GetDescTableName(HGUInt entryName)
return NULL; return NULL;
} }
HGResult HGPdtToolDbDeviceImpl::GetEntryImageRemotePath(const HGChar* entryNameStr, std::string& remotePath)
{
assert(NULL != m_userMgr->m_sql);
assert(NULL != entryNameStr);
remotePath.clear();
char sqlCmd[1024] = { 0 };
sprintf(sqlCmd, "select %s from inspection_image where sn = '%s';", entryNameStr, m_sn.c_str());
int ret = mysql_query(m_userMgr->m_sql, sqlCmd);
if (0 != ret)
{
return HGBASE_ERR_FAIL;
}
MYSQL_RES* sqlRes = mysql_use_result(m_userMgr->m_sql);
if (NULL == sqlRes)
{
return HGBASE_ERR_FAIL;
}
MYSQL_ROW row = mysql_fetch_row(sqlRes);
if (NULL == row)
{
mysql_free_result(sqlRes);
return HGBASE_ERR_FAIL;
}
if (NULL != row[0])
remotePath = row[0];
mysql_free_result(sqlRes);
return HGBASE_ERR_OK;
}
static size_t read_callback(char* ptr, size_t size, size_t nmemb, void* stream) static size_t read_callback(char* ptr, size_t size, size_t nmemb, void* stream)
{ {
unsigned long nread; unsigned long nread;

View File

@ -88,6 +88,7 @@ private:
const HGChar* GetEntryNameStr(HGUInt entryName); const HGChar* GetEntryNameStr(HGUInt entryName);
const HGChar* GetTestTableName(HGUInt entryName); const HGChar* GetTestTableName(HGUInt entryName);
const HGChar* GetDescTableName(HGUInt entryName); const HGChar* GetDescTableName(HGUInt entryName);
HGResult GetEntryImageRemotePath(const HGChar *entryNameStr, std::string &remotePath);
private: private:
// FTP // FTP