高分:VB 调用INET用POST方式发图片到服务器。
DimmyurlAsString,send_dataAsString,my_headAsStringmyurl="http://www.XXX.cn/XXX/save_u...
Dim myurl As String, send_data As String, my_head As Stringmyurl = " http://www.XXX.cn/XXX/save_upload.php"send_data = "filename=D:\a.jpg" my_head = "Content-Type: application/x-www-form-urlencoded"Inet1.Execute myurl, "POST", send_data, my_headIf State = 12 Thenget_data = Inet1.GetChunk(1024)MsgBox get_data发送返回PHP里提示找不到文件页面。如果用myurl = " http://www.XXX.cn/XXX/save_upload.php"send_data = "txt=adf" my_head = "Content-Type: application/x-www-form-urlencoded"Inet1.Execute myurl, "POST", send_data, my_head就成功返回POST出去的adf.请问怎么能成功发送图片(文件),服务器的PHP应该怎么写?能解决的话300分。
展开
3个回答
2013-07-16
展开全部
winsock 可以UDP协议啊 呵呵 图片是要转为一个缓存的二进制文件 在发送 然后取出
将其内容全部读入一个byte类型的数组中,客户端代码如下:
dimmyfile()asbyte
dimpositionaslong
open"filename"forbinaryas#1
position=0
dowhilenoteof(1)
position=positon 1
redimpreservemyfile(1toposition)
get#1,,myfile(position)
loop
close#1
再向远程机传送这个字节数组
sckserver.SendDatamyfile
远程机收到这个数组之后,再以二进制文件的方式打开一个新目标文件,将数组内容写入这个新打开的文件,如果是bmp图片就将其放入picture图片框中,如果是wav文件,就播放。这样,局域网中的两个人就可以通过语言、图片、文字来交流了。
服务端代码如下:
Privatesubsckconnect_DataArrival(byvalbytestotalaslong)
dimreceivefile(1tobytestotal)asbyte
sckconnect.GetDatareceivefile,vbarray vbbyte
'告诉Winsock控件收到的是字节数组类型的数据
open"c:\temp\文件名"forbinaryas#1
forI=1tobytestotal
put#1,,remotearray(I)
nextI
clost#1
end sub
将其内容全部读入一个byte类型的数组中,客户端代码如下:
dimmyfile()asbyte
dimpositionaslong
open"filename"forbinaryas#1
position=0
dowhilenoteof(1)
position=positon 1
redimpreservemyfile(1toposition)
get#1,,myfile(position)
loop
close#1
再向远程机传送这个字节数组
sckserver.SendDatamyfile
远程机收到这个数组之后,再以二进制文件的方式打开一个新目标文件,将数组内容写入这个新打开的文件,如果是bmp图片就将其放入picture图片框中,如果是wav文件,就播放。这样,局域网中的两个人就可以通过语言、图片、文字来交流了。
服务端代码如下:
Privatesubsckconnect_DataArrival(byvalbytestotalaslong)
dimreceivefile(1tobytestotal)asbyte
sckconnect.GetDatareceivefile,vbarray vbbyte
'告诉Winsock控件收到的是字节数组类型的数据
open"c:\temp\文件名"forbinaryas#1
forI=1tobytestotal
put#1,,remotearray(I)
nextI
clost#1
end sub
2013-07-16
展开全部
Private Sub Command1_Click() Dim myurl As String, send_data As String, my_head As String myurl = " http://www.XXX.cn/XXX/save_upload.php" send_data = "txt=" + Trim(Text1.Text) my_head = "Content-Type: application/x-www-form-urlencoded" Inet1.Execute myurl, "POST", send_data, my_head End Sub Private Sub Inet1_StateChanged(ByVal State As Integer) Dim get_data As String ' Do Until Inet1.StillExecuting = False ' ' Loop If State = 12 Then get_data = Inet1.GetChunk(1024) Label1.Caption = get_data End If End Sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-07-16
展开全部
WINSOCKS没有http支持,怎么不用WinINet?当然如果你可以发布程序到服务器的话,在服务器上开Web Service是更好的做法。
服务器返回404错误的话一般是网址写错了……
服务器返回404错误的话一般是网址写错了……
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询