ASP如何利用Multipartfile上传文件?有JAVA代码示例

奋斗一生的程序员 2018-05-25 07:19:47
有一个大数据平台提供接口服务,需要上传图片,采用的是Multipartfile提交,并且获得返回值 Data(返回图片标识),有JAVA代码示例,请哪位大侠帮忙用ASP实现 。谢谢



代码示例:


String filepath = "D:\\mypic.jpg";//图片路径
String POST_URL ="http://file.chinadatapay.com/img/upload?appkey=2712f8c6f0ce9390b9edafc53e9d65b4";
HttpClient httpclient = new DefaultHttpClient();
HttpPost post = new HttpPost(POST_URL);
FileBody fileBody = new FileBody(new File(filepath));
MultipartEntity entity = new MultipartEntity();
entity.addPart("data", fileBody);
post.setEntity(entity);
HttpResponse response = httpclient.execute(post);
HttpEntity r_entity = response.getEntity();
String responseString = EntityUtils.toString(r_entity);
System.out.println("返回结果:" + responseString);
//你需要根据出错的原因判断错误信息,并修改
httpclient.getConnectionManager().shutdown();
...全文
1243 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 3 楼 wcwtitxu 的回复:
谢谢你。 [/code]
测试你的代码后,返回如下:
{"msg":"上传成功","code":"10000","data":"b26eea6c29a0496ab3e86bfdd8c5695a","stacktrace":null,"success":true}
因为,该平台有缺陷,返回“上传成功”,实际却没有图片。所以,我正在询问平台商,是否真正收到了我们刚刚上传的照片。
wcwtitxu 2018-05-30
  • 打赏
  • 举报
回复

    Public Function Size()
        Size = Me.stream.Size + Len(Me.boundary) + 4 ' 这里要修正一下,得+4 才是正确的
    End Function
wcwtitxu 2018-05-28
  • 打赏
  • 举报
回复
Function GetFileData(path)
	With CreateObject("ADODB.Stream")
		.Type = 1
		.Mode = 3
		.Open
		.LoadFromFile path
		.Position = 0
		GetFileData = .Read(-1)
		.Close
	End With
End Function

Function StringFromBytes(bytes, cSet)
    With CreateObject("ADODB.Stream")
        .Type = 1
        .Open
        .Write bytes
        .Position = 0
        .Type = 2
        .Charset = cSet
        StringFromBytes = .ReadText()
        .Close
    End With
End Function

Function GetBytes(str, cSet, bomLength)
	With CreateObject("ADODB.Stream")
		.Type = 2
		.Mode = 3
		.Charset = cSet
		.Open
		.Position = 0
		.WriteText str
		.Position = 0
		.Type = 1
		.Position = bomLength
		GetBytes = .Read(-1)
		.Close
	End With
End Function

Class Multipart
	Dim charset, bomLength, stream, boundary

	Private Sub Class_Initialize()
		Me.charset = "UTF-8"
		Me.bomLength = 3
		Set Me.stream = CreateObject("ADODB.Stream")
		Me.stream.Mode = 3
		Me.stream.Type = 1
		Me.stream.Open
		Me.boundary = "----WebKitFormBoundaryomATwYZzgiwmJSgy" ' 随便写一个,够复杂就行
	End Sub
	
	Sub WriteText(value)
		Me.stream.Write GetBytes(value, Me.charset, Me.bomLength)
	End Sub
	
	Public Function Size()
		Size = Me.stream.Size + Len(Me.boundary)
	End Function
	
	Public Function GetData()
		Me.stream.Position = 0
		With CreateObject("ADODB.Stream")
			.Type = 1
			.Mode = 3
			.Open
			.Position = 0
			.Write Me.stream.Read(-1)
			.Write GetBytes("--" & Me.boundary & "--", Me.charset, Me.bomLength)
			.Position = 0
			GetData = .Read(-1)
			.Close
		End With
		Me.stream.Position = Me.stream.Size
	End Function
	
	Public Sub AddTextEntity(name, value)
		Me.WriteText "--" & Me.boundary & vbCrLf & "Content-Disposition: form-data; name=""" & name & """" & vbCrLf & vbCrLf & value & vbCrLf		
	End Sub
	
	Public Sub AddFileEntity(name, filePath, mime)
		Me.WriteText "--" & Me.boundary & vbCrLf
		Me.WriteText "Content-Disposition: form-data; name=""" & name & """; filename=""" & filePath & """" & vbCrLf
		Me.WriteText "Content-Type: " & mime & vbCrLf & vbCrLf
		Me.stream.Write GetFileData(filePath)
		Me.WriteText vbCrLf		
	End Sub
	
	Private Sub Class_Terminate()
		Me.stream.Close
		Set Me.Stream = Nothing
	End Sub
End Class

Dim filePath, POST_URL, multidata, xhr
filePath = "E:\40x40.jpg"
POST_URL ="http://file.chinadatapay.com/img/upload?appkey=2712f8c6f0ce9390b9edafc53e9d65b4"


Set multidata = New Multipart
multidata.AddFileEntity "data", filePath, "image/jpeg"


Set xhr = CreateObject("WinHttp.WinHttpRequest.5.1")
xhr.Open "POST", POST_URL, False
xhr.SetRequestHeader "Content-Length", multidata.Size()
xhr.SetRequestHeader "Content-Type", "multipart/form-data; boundary=" & multidata.boundary
xhr.Send multidata.GetData()

Response.Write xhr.ResponseText
  • 打赏
  • 举报
回复
我将我写的VB6,发上来了。测试不对。http://http:/www.notery.cn/vb6_picload.rar

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧