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

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;
}
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)
std::string remotePath;
HGResult res = GetEntryImageRemotePath(entryNameStr, remotePath);
if (HGBASE_ERR_OK != res)
{
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;
}
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)
@ -1617,12 +1600,21 @@ HGResult HGPdtToolDbDeviceImpl::UploadEntryImage(HGUInt entryName, const HGChar*
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];
HGBase_GetUuid(uuid, 256);
HGChar remotePath[256];
sprintf(remotePath, "/upload/%s.jpg", uuid);
remotePath = std::string("/upload/") + uuid + ".jpg";
}
HGResult res = UploadFile(ftpHost, ftpPort, fileName, remotePath);
res = UploadFile(ftpHost, ftpPort, fileName, remotePath.c_str());
if (HGBASE_ERR_OK != 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';",
entryNameStr, remotePath, m_sn.c_str());
entryNameStr, remotePath.c_str(), m_sn.c_str());
ret = mysql_query(m_userMgr->m_sql, sqlCmd);
if (0 != ret)
{
@ -1694,6 +1686,39 @@ const HGChar* HGPdtToolDbDeviceImpl::GetDescTableName(HGUInt entryName)
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)
{
unsigned long nread;

View File

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