大众点评王老五 2022-05-09 10:57 采纳率: 33.3%
浏览 46

在Linux下使用qt开发的聊天软件,为什么一端发向另一端doc文件可以,另一端向这一端发送就没有数据

问题遇到的现象和发生背景

在Linux下使用qt开发的聊天软件,为什么一端发向另一端doc文件可以,另一端向这一端发送就没有数据;但txt文件互传是可以的

问题相关代码,请勿粘贴截图
if(msgType == "receiveFile"){//文件处理
    QString sendUser,receiveUser,fileStr;
    QByteArray fileData;
    in >> sendUser >> receiveUser >> fileStr >>fileData;
    if(!fileData.isEmpty()){   
        QString fileName = QFileDialog::getExistingDirectory();//选择文件目录
        qDebug()<<fileName;
        QFile file(fileName+"/"+fileStr);
        file.open(QIODevice::WriteOnly);
        file.write(fileData);//保存文件
        file.close();
    }
}
运行结果及报错内容

fileData.isEmpty() 在doc文件时是ture,在txt时是false

我的解答思路和尝试过的方法

一直查找不出来错

我想要达到的结果

可以互传doc文件

  • 写回答

4条回答 默认 最新

  • 三雷科技 C/C++领域新星创作者 2022-05-09 11:40
    关注

    txt文本是可见字符的数据流,doc是二进制数据流.
    在发送的时候时候是使用了可见字符数据流发送方式,导致无法接受数据.

    评论

报告相同问题?

问题事件

  • 创建了问题 5月9日

悬赏问题

  • ¥15 系统 24h2 专业工作站版,浏览文件夹的图库,视频,图片之类的怎样删除?
  • ¥15 怎么把512还原为520格式
  • ¥15 MATLAB的动态模态分解出现错误,以CFX非定常模拟结果为快照
  • ¥15 求高通平台Softsim调试经验
  • ¥15 canal如何实现将mysql多张表(月表)采集入库到目标表中(一张表)?
  • ¥15 wpf ScrollViewer实现冻结左侧宽度w范围内的视图
  • ¥15 栅极驱动低侧烧毁MOSFET
  • ¥30 写segy数据时出错3
  • ¥100 linux下qt运行QCefView demo报错
  • ¥50 F1C100S下的红外解码IR_RX驱动问题