作者:再生Solo_868 | 来源:互联网 | 2023-06-24 17:05
要在IE中实现文件上传,不知从何从起希望高手描述一下思路可以不用贴代码,因为暂时还看不懂×_×WinInet和Socket在VC6中似乎都可以实现文件上传它们各自适用于什么情况?
要在IE中实现文件上传,不知从何从起
希望高手描述一下思路
可以不用贴代码,因为暂时还看不懂 ×_×
WinInet和Socket在VC6中似乎都可以实现文件上传
它们各自适用于什么情况?
有什么特点啊?
关于HTTP需要了解一些什么?
9 个解决方案
是何种协议的上传呢?我以前写过一个ftp类的上传,如果需要,我可以给你些代码帮助
如果是基于tcp的话,应该可以用文件操作的,有几个函数CFile myfile;比如:myfile.Open(...);myfile.Write(...);myfile.Close();这些函数应该要用到的,写过这种东西的哥们可以再写详细点。
在別的地方問過?好象在哪里見過呵﹕) 我只給出基于FTP的例子﹕)
下表显示了实现一个典型的FTP client application的步骤:
目的 方法 结果
开始一个FTP session 创建一个CInternetSession对象 初始化WinInet
并联接服务器
连接到一个FTP Server 用CInternetSession::GetFtpConnection 返回一个CFtpConnection对象
CD到 FTP 服务器的一个新目录 用CFtpConnection::SetCurrentDirectory CD到FTP服务器的一个
新目录
Find 第一个FTP目录中的文件 用CFtpFileFind::FindFile Find第一个文件,如果文件每找到返回FALSE
Find 下一个FTP目录中的文件 用CFtpFileFind::FindNextFile Find下一个文件
如果文件没找到返回FALSE
打开FindFile或FindNextFile找到的文件(用于读写) 用CFtpConnection::OpenFile,用FindFile或FindNextFile返回的文件名 打开FindFile或FindNextFile找到的文件(用于读写),返回一个CInternetFile对象
读写文件 用CInternetFile::Read或CInternetFile::Write 使用你指定的缓冲写
指定的字节数
异常处理 用CInternetException类 处理所有普通的Internet异常类型
结束FTP session 处理CInternetSession对象 自动清除打开的句柄的连接
例子﹕
在VC++中创建一个基于对话框的应用程序,需要注意的是在创建此工程时,一定要选择Windows Sockets这一选项。创建的对话框的结构如上图,并在对话框类的文件中加入#include 'afxinet.h' 头文件。然后在对话框这个类的文件中加入下列函数,此函数是敲击Send-Button按钮发生的事件,主要是完成FTP功能传送文件的功能,本程序中要传的文件应该放在本工程中,如果放在别处可稍加改动一下即可。
void CFtptestDlg::OnSendButton()
{
CString host;
m_HostEdit.GetWindowText(host);
//m_HostEdit是对话框中FTP Host :Edit控件的命名
CString user;
m_UserEdit.GetWindowText(user);
//m_UserEdit是对话框中User:Edit控件的命名
CString password;
m_PasswordEdit.GetWindowText(password);
//m_PasswordEdit是对话框中Password:Edit控件的命名
CString filename;
m_FileEdit.GetWindowText(filename);
//m_FileEdit是对话中SendFile:Edit控件的命名
TRACE(':%s:%s:%s:%s\n', host,
user, password, filename);
CInternetSession session
(AfxGetApp()- >m_pszAppName);
CFtpConnection* pConn = NULL;
pConn = session.GetFtpConnection
(host,user,password);
if (pConn) {
if (!pConn- >PutFile(filename,filename)){
MessageBox('传送文件失败??');
} else {
MessageBox('传送文件成功!');
}
pConn- >Close();
delete pConn;
session.Close();
} else {
MessageBox('Cannot Connect');
}
}
我记得以前做过IIS的,就是把文件读到一个内存缓冲区,然后发送就可以了
请问seilfer2000(鬼手韩特) :如何发到IIS的缓存区!!!
可以使用http方式,找一些Vbscript上传文件的源代码,然后改成vc的就可以了!