代码拉取完成,页面将自动刷新
#include "fileupload.h"
fileUpload::fileUpload(QObject *parent)
: QObject{parent}
{}
fileUpload::~fileUpload()
{
}
void fileUpload::uploadFileData()
{
QFile file(filePath);
if(!file.open(QIODevice::ReadOnly)) // 只读形式打开文件
{
// 打开失败
QMessageBox::warning(NULL, "打开文件", "打开文件失败!");
}
// 二进制形式传输文件
char *pBuffer = new char[4096]; // 4096个字节读写效率更高
qint64 iActualSize = 0;
while(true)
{
iActualSize = file.read(pBuffer, 4096); // 读数据,返回值是实际读取数据大小
if (iActualSize > 0 && iActualSize <= 4096)
{
if (uploadSocket->state() == QAbstractSocket::ConnectedState) {
// qDebug()<<"连接状态中";
}
uploadSocket->write(pBuffer, iActualSize);
}
else if (iActualSize == 0)
{ // 发送完成
break;
}
else
{
// QMessageBox::warning(NULL, "上传文件", "上传失败!");
qDebug()<<"上传失败";
break;
}
}
file.close();
delete [] pBuffer;
pBuffer = NULL;
filePath.clear(); // 清除上传文件夹名,以免影响之后上传操作
}
void fileUpload::setFilePath(QString path)
{
filePath = path;
}
void fileUpload::setTcpSocket(my_tcpsocket *socket)
{
uploadSocket = socket;
connect(uploadSocket,&my_tcpsocket::readyUpdate,this,&fileUpload::uploadFileData);
}
my_tcpsocket *fileUpload::get_uploadSocket()
{
return uploadSocket;
}
void fileUpload::setPdu(PDU *pdu,uint size)
{
this->pdu = mkPDU(size);
this->pdu->uiMsgType = pdu->uiMsgType;
sprintf(this->pdu->msg,"%s",pdu->msg);
}
void fileUpload::init_update()
{
this->uploadSocket->write((char*)pdu,pdu->uiPduLen);
}
void fileUpload::init_download()
{
this->uploadSocket->write((char*)pdu,pdu->uiPduLen);
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。