//核心代码
ofstream outfile("/opt/software/" + file.getFilename(), ios::out | ios::binary);
outfile << file.getData();
//错误方式:outfile << file.getData() <<endl;
outfile.close();
例如:上传tar.gz格式的压缩包,上传后解压时错误提示:
十六进制对比本地文件和上传之后的文件:
原因: 在Unix/Linux系统中,换行符单独使用(即\n),在文件或数据流中,0A通常表示一个换行符,其ASCII码值为10,十六进制表示为0A。不能将endl作为结束符添加到文件流中。