###前提・実現したいこと
VB2015でWebAPIを初めて作成しています。
POSTでBODYにバイナリデータを送くってもらいデータベースに保存する仕様ですが、
サーバー側でBODYからバイナリデータをどのように受け取ったらいいかわからず
困っています。
ネットで探してみたのですが、どうにも理解できない状況です。
一般的な方法等教えて頂けますか?
Request.Contentにはデータが入っているようなのは確認しています。
その後どうやって受け取って良いかが分かりません。
###発生している問題・エラーメッセージ
###該当のソースコード
ここにご自身が実行したソースコードを書いてください
Imports System.Net
Imports System.Web.Http
Imports System.Net.Http
Imports Newtonsoft.Json
Imports System.Drawing
Imports System.IO
Public Function PostValue() As HttpResponseMessage
Dim strPhotoId As String
Dim stream As IO.Stream
Dim intByteLen As Integer = synova.Dotnet.Common.Lib.F_NullToInteger(Request.Content.Headers.GetValues("Content-Length")(0).ToString)
Dim saveFileBytes(intByteLen) As Byte
stream = Request.Content.ReadAsStreamAsync().Result If stream.CanRead = True Then stream.ReadAsync(saveFileBytes, 0, intByteLen) End If Return Request.CreateResponse(HttpStatusCode.Accepted, strPhotoId)
End Function
###試したこと
ソースをいったん直しましたので変更致します。
streamでバイトまでは取れてるようなのですが、取得したバイトを
そのままイメージに保存した場合エラーが発生しています。
元のファイルのバイト数が17,525に対して
読込んだ際のバイト数が17,718になっています。
不要なデータが存在するってことでしょうか?
以下Fidderでファイルをアップした際の内容です。
<POST>
Content-Type: multipart/form-data; boundary=-------------------------acebdf13572468
User-Agent: Fiddler
Host: localhost
Content-Length: 17718
<RAWタブの情報>
POST http://localhost/WebApplication2/photos HTTP/1.1
Content-Type: multipart/form-data; boundary=-------------------------acebdf13572468
User-Agent: Fiddler
Host: localhost
Content-Length: 194
---------------------------acebdf13572468
Content-Disposition: form-data; name="fieldNameHere"; filename="test.jpeg"
Content-Type: image/jpeg
---------------------------acebdf13572468--
回答1件
あなたの回答
tips
プレビュー