vb6 上传文件到服务器,用vb6做一个简单的文件上传组件(一)_asp实例

最近在单位做的一个项目里需要有文件上传的功能,正好手头一本书的附赠光盘里有一个上传组件,心中大喜。可惜随之便发现这是一个试用版,不给钱就只能用50次,太小气了!!好在头头催得不紧,时间充裕,干脆自己试着做一个,既可长经验值,又能长成就感,不试白不试!以下介绍的便是俺折腾了两天半捣鼓出来的一个只能说是雏形的玩意,区区三十行代码,大侠们不要笑俺哦,这只是写给与俺一样好奇心强但经验值低的弟兄们看的。

文件上载所需的第一步当然是进入一个有“file”表单元素的页面,具体就不说了,大家都知道。但是若想做一个能够接受该文件并且将其保存到服务器硬盘上的组件,必须知道所提交的原始数据的怎么一个模样才行。做到这一点并不难:

Dim FormData,FormSize

FormSize=Request.TotalBytes

FormData=Request.BinaryRead(FormSize)

Response.BinaryWrite FormData

%>

因为需要读取的是前一个页面提交来的原始字节数据,因此不能使用Request.Form()方法,必须使用BinaryRead方法,并且一旦使用了这个方法,就不能再在同一个页面中使用Form()方法了,反之亦然。基于同样的道理,向页面输出时也必须使用BinaryWrite方法,不过这并不妨碍你继续使用Response.Write方法。

在下面的描述中假设浏览者选择上传的文件是一个GIF图片,你会发现这段代码运行的结果并不是在浏览器上显示出这幅图片,而只是输出了一堆基本上是乱七八糟的字符:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个使用VB6 Socket组件实现HTTP上传文件的示例代码: ```vb Private Sub cmdUpload_Click() Dim sRequestBody As String ' 设置HTTP头部信息 sRequestBody = "POST /upload.php HTTP/1.1" & vbCrLf sRequestBody = sRequestBody & "Host: www.example.com" & vbCrLf sRequestBody = sRequestBody & "Content-Type: multipart/form-data; boundary=boundary" & vbCrLf & vbCrLf sRequestBody = sRequestBody & "--boundary" & vbCrLf sRequestBody = sRequestBody & "Content-Disposition: form-data; name=""file""; filename=""test.txt""" & vbCrLf sRequestBody = sRequestBody & "Content-Type: text/plain" & vbCrLf & vbCrLf ' 读取文件内容 Dim sFileName As String sFileName = "C:\test.txt" ' 指定要上传的文件路径 Dim oFile As Object Set oFile = CreateObject("Scripting.FileSystemObject") Dim oStream As Object Set oStream = oFile.OpenTextFile(sFileName) Dim sBodyContent As String sBodyContent = oStream.ReadAll oStream.Close sRequestBody = sRequestBody & sBodyContent & vbCrLf ' 结束标识 sRequestBody = sRequestBody & "--boundary--" & vbCrLf ' 打开Socket连接 Dim oSocket As Object Set oSocket = CreateObject("MSWinsock.Winsock") oSocket.RemoteHost = "www.example.com" ' 服务器地址 oSocket.RemotePort = 80 ' 服务器端口 oSocket.Connect ' 发送HTTP请求 oSocket.SendData sRequestBody ' 接收响应 Dim sResponse As String While oSocket.State = 7 ' 接收数据状态 ' 持续接收数据直到连接断开 sResponse = sResponse & oSocket.GetData Wend ' 关闭Socket连接 oSocket.Close ' 处理响应结果 ' ... End Sub ``` 以上代码假设要上传的文件为`C:\test.txt`,服务端地址为`www.example.com`,服务端的文件上传路径为`/upload.php`。你需要根据实际情况修改这些参数。 这个例子中,我们首先构造了一个HTTP POST请求头部以及请求体,包括了文件名、文件类型等信息。然后我们通过VB6的FileSystemObject打开文件,读取它的内容,并将内容添加到请求体中。最后我们通过Socket组件连接服务器,将构造好的HTTP请求发送给服务器,并接收服务器返回的响应。 在实际应用中,你需要根据你的服务器端要求自定义HTTP请求头部内容、文件名等。并且根据响应结果,你可以进一步处理服务器返回的数据。 注意:以上示例中使用的VB6的Winsock组件需要在项目中添加相应的引用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值