Post 我可以使用httprequest自动发布一个文件吗,就像正常上传一样?
我被(我认为)应该很简单的事情困住了,但我不知道怎么做。我在这里或谷歌上都找不到任何信息 我们有一个web应用程序,它从我们的站点获取数据并自动将其发布到另一个API 我们还想发送一个二进制文件——例如,我们从本地URL抓取文件,并将其内容发布到另一个站点Post 我可以使用httprequest自动发布一个文件吗,就像正常上传一样?,post,file-io,asp-classic,multipartform-data,Post,File Io,Asp Classic,Multipartform Data,我被(我认为)应该很简单的事情困住了,但我不知道怎么做。我在这里或谷歌上都找不到任何信息 我们有一个web应用程序,它从我们的站点获取数据并自动将其发布到另一个API 我们还想发送一个二进制文件——例如,我们从本地URL抓取文件,并将其内容发布到另一个站点 有人能给我指出正确的方向吗?例如,我是否需要将文件URL以某种方式嵌入到数据中,并作为多部分/表单数据发布?我创建了这些经典的ASP函数来将文件发布到另一台服务器。希望它也能帮助你 Function PostDocument(intDocum
有人能给我指出正确的方向吗?例如,我是否需要将文件URL以某种方式嵌入到数据中,并作为多部分/表单数据发布?我创建了这些经典的ASP函数来将文件发布到另一台服务器。希望它也能帮助你
Function PostDocument(intDocumentID, binFile, strFilename, strContentType)
Dim objHttp, strBoundary, strRequestStart, strRequestEnd, binPost
Dim objStream
strBoundary = "---------------------------9849436581144108930470211272"
Set objHttp = Server.CreateObject("MSXML2.ServerXMLHTTP.6.0")
strRequestStart = "--" & strBoundary & vbCrlf &_
"Content-Disposition: form-data; name=""id""" & vbCrlf &_
vbCrlf &_
intDocumentID & vbCrlf &_
vbCrlf &_
"--" & strBoundary & vbCrlf &_
"Content-Disposition: form-data; name=""file""; filename=""" & strFilename & """" & vbCrlf &_
"Content-Type: " & strContentType & vbCrlf &_
vbCrlf
strRequestEnd = vbCrLf & "--" & strBoundary & "--"
Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Type = adTypeBinary '1
objStream.Mode = adModeReadWrite '3
objStream.Open
objStream.Write StringToBinary(strRequestStart)
objStream.Write binFile
objStream.Write StringToBinary(strRequestEnd)
objStream.Position = 0
binPost = objStream.Read
Response.Write binPost
objStream.Close
Set objStream = Nothing
objHttp.Open "POST", "(url removed)", False, "(username removed)", "(password removed)"
objHttp.setRequestHeader "Content-Type", "multipart/form-data; boundary=""" & strBoundary & """"
objHttp.Send binPost
PostDocument = objHttp.ResponseText
Set objHttp = Nothing
End Function
Function StringToBinary(toConvert)
Dim objStream, data
Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Charset = "ISO-8859-1"
objStream.Type = adTypeText '2
objStream.Mode = adModeReadWrite '3
objStream.Open
objStream.WriteText toConvert
objStream.Position = 0
objStream.Type = adTypeBinary '1
StringToBinary = objStream.Read
objStream.Close
Set objStream = Nothing
End Function
我创建了这些经典的ASP函数来将文件发布到另一台服务器。希望它也能帮助你
Function PostDocument(intDocumentID, binFile, strFilename, strContentType)
Dim objHttp, strBoundary, strRequestStart, strRequestEnd, binPost
Dim objStream
strBoundary = "---------------------------9849436581144108930470211272"
Set objHttp = Server.CreateObject("MSXML2.ServerXMLHTTP.6.0")
strRequestStart = "--" & strBoundary & vbCrlf &_
"Content-Disposition: form-data; name=""id""" & vbCrlf &_
vbCrlf &_
intDocumentID & vbCrlf &_
vbCrlf &_
"--" & strBoundary & vbCrlf &_
"Content-Disposition: form-data; name=""file""; filename=""" & strFilename & """" & vbCrlf &_
"Content-Type: " & strContentType & vbCrlf &_
vbCrlf
strRequestEnd = vbCrLf & "--" & strBoundary & "--"
Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Type = adTypeBinary '1
objStream.Mode = adModeReadWrite '3
objStream.Open
objStream.Write StringToBinary(strRequestStart)
objStream.Write binFile
objStream.Write StringToBinary(strRequestEnd)
objStream.Position = 0
binPost = objStream.Read
Response.Write binPost
objStream.Close
Set objStream = Nothing
objHttp.Open "POST", "(url removed)", False, "(username removed)", "(password removed)"
objHttp.setRequestHeader "Content-Type", "multipart/form-data; boundary=""" & strBoundary & """"
objHttp.Send binPost
PostDocument = objHttp.ResponseText
Set objHttp = Nothing
End Function
Function StringToBinary(toConvert)
Dim objStream, data
Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Charset = "ISO-8859-1"
objStream.Type = adTypeText '2
objStream.Mode = adModeReadWrite '3
objStream.Open
objStream.WriteText toConvert
objStream.Position = 0
objStream.Type = adTypeBinary '1
StringToBinary = objStream.Read
objStream.Close
Set objStream = Nothing
End Function
谢谢你,约翰,我要试一试:)(3天后)差不多到了。。。。。我能问一下。。。strRequestStart中的两个内容处理头是怎么回事?第一个用于表单字段(intDocumentId-更改除文件外需要传递的内容),第二个用于文件本身。如果您想在同一请求中传递多个字段或文件,则需要更多。感谢您在这段时间后回复我。:)这是否意味着,如果我只是发布文件本身,我可以忽略第一个文件?我90%都能让它工作,但当我从目标下载文件时,我发布的文件似乎已损坏。你有没有可能看看这里贴的代码,告诉我是否有明显的错误?谢谢你,约翰,我要试一试:)(3天后)差不多到了。。。。。我能问一下。。。strRequestStart中的两个内容处理头是怎么回事?第一个用于表单字段(intDocumentId-更改除文件外需要传递的内容),第二个用于文件本身。如果您想在同一请求中传递多个字段或文件,则需要更多。感谢您在这段时间后回复我。:)这是否意味着,如果我只是发布文件本身,我可以忽略第一个文件?我90%都能让它工作,但当我从目标下载文件时,我发布的文件似乎已损坏。你有没有可能看看这里贴的代码,告诉我是否有明显的错误?到另一个API?您将数据发布到哪里/向谁发布?这是一个工作公告栏。我们正试图将简历/简历发布到另一个API?您将数据发布到哪里/向谁发布?这是一个工作公告栏。我们正试着在简历上发帖子