【发布时间】:2020-11-27 00:13:38
【问题描述】:
我正在尝试在 vb.net 中使用 RESTSharp 上传文件。
我无法完成这个。
以下是我正在尝试的代码。
Public Function CreateUploadFileRequest(ByVal path As String, ByVal filename As String, ByVal fileStream As Stream) As RestRequest
Dim request = New RestRequest(Method.POST)
request.Timeout = Integer.MaxValue
request.Resource = "{version}/files/dropbox{path}"
request.AddParameter("version", _version, ParameterType.UrlSegment)
request.AddParameter("path", path, ParameterType.UrlSegment)
request.AddParameter("file", filename)
request.AddFile("file", fileStream, filename) '---I am wrong at this line
Return request
End Function
我找到了 C# 代码,但无法转换 vb.net 中的特定行
request.AddFile(FieldName, (s) =>
{
fileStream.CopyTo(s);
fileStream.Flush();
}, FileName, ContentType);
如果我把上面的转换成 vb.net,那就不行了。下面是转换后的代码。
request.AddFile("file", Function(s)
fileStream.CopyTo(s)
fileStream.Flush()
End Function, FileName, ContentType)
我还在 c# 中发现了另外一行,但代码转换后在 vb.net 中同样不起作用。
[in C#] request.AddFile ("file", s => StreamUtils.CopyStream (fileStream, s), filename);
转换为 vb.net,[不工作]
[in vb.net] request.AddFile("file", Function(s) StreamUtils.CopyStream(fileStream, s), filename)
【问题讨论】:
-
您可以简单地在那里传递一个字节数组以及文件名。所以,
File.ReadAllBytes(filePath)会做(也内联)。 -
我没有实际文件,另一个功能之一是将 pdf 文件生成到流中,该功能不会将该流保存到文件中。所以我想使用该pdf流使用RESTSharp上传
-
然后从 Stream 中读取所有字节。
-
我试过了,但我在某处犯了错误。你能分享一下代码行吗?
-
如果这实际上是一个通用流,试试这个:
dim ms as new MemoryStream() fileStream.CopyTo(ms)然后将数组传递给方法:request.AddFile("file", ms.ToArray(), filename) '[...] ms.Dispose()。