最近在写一个小程序,功能是将文件读取然后然后上传到文件服务器上去。 文件服务器端接收格式为字符串。思路是将文件读取后转换为Base64编码,然后传递给服务器。
再读取文件和转换的过程中遇到了一些问题,总是得到的东西不对,都是以而写zMzMzM的连续的乱码式字符。苦思不得其解,后来觉得可能是读取的时候转换过程中出现了问题。怀疑是整个转换过程出现了问题。
于是想用另外一个办法,每次读取4096字节数据,转换。这样把所有的加起来就是整个的base64编码。但是转换后仍然问题依旧。苦思,最后发觉,Base64编码规则是将3个8Bytes的数据转换为4个6bytes的数据。而4096不是3的倍数,正好余1,最后一个如何转换呢?因此将Buffer长度改为4095,问题解决。
下面是部分代码:
CString fileURL = m_filePath;
HANDLE hFile;
TCHAR buffer[BUFSIZE];
TCHAR lpPathBuffer[BUFSIZE];
DWORD dwBytesRead, dwBytesWritten, dwBufSize=BUFSIZE;
hFile = CreateFile(m_filePath.GetBuffer(), // file name
GENERIC_READ, // open for reading
0, // do not share
NULL, // default security
OPEN_EXISTING, // existing file only
FILE_ATTRIBUTE_NORMAL, // normal file
NULL);
if (hFile == INVALID_HANDLE_VALUE)
{
return;
}
CString str;
do
{
if (ReadFile(hFile, buffer, 4095,
&dwBytesRead, NULL))
{
/*CString temp(buffer);
str+=temp; */
CStringA contentStr = ToBase64(buffer,dwBytesRead);
str.Append((CString)contentStr);
}
} while (dwBytesRead == BUFSIZE);
CloseHandle(hFile);
分享到:
相关推荐
总结,WM Windows Mobile FTP手机版工具是移动设备上不可或缺的实用软件,它将桌面级的FTP体验带到掌上,让文件传输更加自由、高效。通过了解这些知识点,用户能够更好地利用这类工具,提升移动办公的体验。
### Opera Mini 5.1 for Windows Mobile 代理服务器修改详细指南 #### 一、引言 Opera Mini是一款专为移动设备设计的浏览器,其特点在于能够通过代理服务器压缩网页数据,从而实现更快的加载速度和更低的数据消耗...
在Windows Mobile平台上开发应用程序时,有时需要与远程服务器进行数据交换,例如上传或下载文件,这时FTP(File Transfer Protocol)协议就是一个常用的工具。本篇主要介绍如何在Windows Mobile环境下实现一个FTP类...
4. 文件I/O操作:在本地存储和FTP服务器之间进行文件操作时,需要使用Windows Mobile的文件I/O接口。这包括打开、读取、写入和关闭文件。 5. 多线程编程:为了实现非阻塞的并发操作,如同时进行文件上传和下载,...
DataSync文件夹可能包含同步逻辑,用于将设备上的GPS数据上传到服务器,或者将服务器上的更新下载到设备。这对于实时跟踪和数据分析至关重要,尤其是当有多台设备需要同步时。 GPS.Util可能是一个实用程序库,包含...
5. **开发实例**:"CS_CaptureAccumulateTransfer"可能是一个源代码示例或者项目文件,它展示了如何在Windows Mobile 5.0上实现UDP Socket通信。通常,这样的实例会包括客户端如何创建Socket连接,发送和接收数据,...
- **上传媒体**:上传图片和视频到个人空间。 - **评论互动**:阅读他人评论并对评论进行回复。 - **个性化设置**:定制个人空间的设计和布局。 #### Windows Live Contacts Windows Live Contacts 功能使得用户...
在Windows Mobile平台上,RLGPS设备通常会与TRACCAR服务器进行集成,实现数据的上传和接收。设备通过RLGPS技术收集位置信息,然后将这些信息发送到运行TRACCAR服务的服务器。服务器接收到数据后,解析并存储,用户...
RDA(Remote Data Access)数据同步是Windows Mobile应用中的关键特性,它允许移动设备与远程服务器之间进行数据交换。RDA允许用户在离线状态下工作,然后在有网络连接时同步数据,这对于那些在网络不稳定或不可用的...
在Windows Mobile平台上进行移动网络开发时,调用CMWAP上网是常见的需求,尤其是在GPRS(General Packet Radio Service)环境下。CMWAP是China Mobile WAP的缩写,是一种专为移动设备设计的网络接入协议,它允许用户...
在Windows Mobile平台上,开发人员经常会遇到需要实现网络通信的需求,比如文件的上传和下载。这时,WinInet库提供了一种高效且灵活的解决方案。WinInet是Microsoft为Windows操作系统设计的一个API,它允许应用程序...
在Windows Mobile操作系统中,开发应用程序时,我们可能会遇到需要与远程服务器进行文件交换的情况,这时FTP(File Transfer Protocol)协议就显得尤为重要。本主题将详细讲解如何在Windows Mobile环境下实现FTP功能...
在Windows CE和Windows Mobile操作系统中,自动同步时间功能是一个重要的特性,它允许设备与公网上的时间服务器进行同步,确保系统时间的准确性。这对于系统日志记录、网络通信、安全认证等多个方面都至关重要。本文...
Windows Mobile 6是一款专为移动设备设计的操作系统,尤其针对PDA(个人数字助理)设备。这个版本在2007年为开发人员带来了许多新特性,旨在优化用户体验和提高开发效率。以下是一些关键点: 1. **用户界面设计**:...
9. **数据存储**:记录的GPS轨迹数据可能被存储在设备的本地数据库(如SQL CE)或者上传到远程服务器,以便于分析和共享。 通过研究提供的源代码,开发者可以学习到如何在Windows Mobile CE 5平台上与GPS硬件交互、...
在本文中,我们将深入探讨如何使用Win32 API进行Windows/Windows Mobile平台上的网络编程,以构建一个简单的网络浏览器作为示例。这个教程主要关注如何利用Microsoft的Win32 Internet函数来实现这一目标,这些函数...
### 基于Windows Mobile 的数据同步技术 #### 一、为什么需要数据同步? 随着移动设备的普及,用户越来越依赖于这些便携式设备来进行工作和生活中的各种活动。为了确保移动设备上的应用能够高效地运行,数据同步...
在IT行业中,Windows Mobile(简称WinMobile)是一个已经过时的操作系统平台,主要用于早期的智能手机和平板电脑。尽管现在已被Windows Phone和Android等现代操作系统所取代,但了解WinMobile的开发对于历史研究或...
这可以通过e-mobile的管理界面完成,上传APK或IPA文件,或者通过集成的开发者工具进行打包。 7. **用户管理和设备注册** 设置用户角色和权限,允许员工或团队注册他们的设备。e-mobile通常支持多种设备平台,如iOS...
还可用来在智能手机之间通过蓝牙、无线网络、数据线传输文件,支持多线程和断点续传,代码已经封装成一个dll库,可以作为服务器来使用,也可以当作客户端来使用,服务端支持蓝牙(Bluetooth)接入,并提供详细的测试...