long l_file_len;
//获取文件内容
bool file_con(char **buffer,LPCSTR file)
{
FILE *fp = fopen(file, "rb");
if(fp==NULL)
{
printf("文件上传失败,请检查文件路径.....\n");
return false;
}
fseek(fp, 0, SEEK_END);
l_file_len = ftell(fp);
rewind(fp);
*buffer = new char[l_file_len + 1];
memset(*buffer, 0, l_file_len + 1);
fseek(fp, 0, SEEK_SET);
fread(*buffer, sizeof(char), l_file_len, fp);
fclose(fp);
return true;
}
//文件上传
std::string upload(LPCSTR lpszServer,LPCSTR lpszAddr,LPCSTR fileUrl)
{
char *file = NULL;
if(!file_con(&file,fileUrl))
{
return "0";
}
SOCKET sock = ::socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (sock == INVALID_SOCKET)
return "0";
SOCKADDR_IN server;
server.sin_family = AF_INET;
server.sin_port = htons(80);
struct hostent *host_addr = gethostbyname(lpszServer);
if (host_addr == NULL)
return "host_addr == NULL";
server.sin_addr.s_addr = *((int *) *host_addr->h_addr_list);
if (::connect(sock, (SOCKADDR *) &server, sizeof(SOCKADDR_IN)) == SOCKET_ERROR)
{
::closesocket(sock);
return "0";
//获取文件内容
bool file_con(char **buffer,LPCSTR file)
{
FILE *fp = fopen(file, "rb");
if(fp==NULL)
{
printf("文件上传失败,请检查文件路径.....\n");
return false;
}
fseek(fp, 0, SEEK_END);
l_file_len = ftell(fp);
rewind(fp);
*buffer = new char[l_file_len + 1];
memset(*buffer, 0, l_file_len + 1);
fseek(fp, 0, SEEK_SET);
fread(*buffer, sizeof(char), l_file_len, fp);
fclose(fp);
return true;
}
//文件上传
std::string upload(LPCSTR lpszServer,LPCSTR lpszAddr,LPCSTR fileUrl)
{
char *file = NULL;
if(!file_con(&file,fileUrl))
{
return "0";
}
SOCKET sock = ::socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (sock == INVALID_SOCKET)
return "0";
SOCKADDR_IN server;
server.sin_family = AF_INET;
server.sin_port = htons(80);
struct hostent *host_addr = gethostbyname(lpszServer);
if (host_addr == NULL)
return "host_addr == NULL";
server.sin_addr.s_addr = *((int *) *host_addr->h_addr_list);
if (::connect(sock, (SOCKADDR *) &server, sizeof(SOCKADDR_IN)) == SOCKET_ERROR)
{
::closesocket(sock);
return "0";