Ik probeer vanuit een W8 app de profile picture te uploaden met onderstaande code:
De Web Api bevat deze code:
De Web Api constateerd dat de request niet multipart is en genereerd een 415 html error.
Ik heb beide stukken code van een voorbeeld van Microsoft overgenomen, en op internet kom ik ook steeds dezelfde code tegen. Maar bij mij lukt het niet om een file te uploaden. Ik heb het vermoeden dat IIS waar ik de Web Api op host misschien het een en ander in de war schopt, maar ik kom er niet uit.
Visual Basic .NET:
1
2
3
4
5
6
| Dim image As Windows.Storage.IStorageFile = Windows.System.UserProfile.UserInformation.GetAccountPicture(Windows.System.UserProfile.AccountPictureKind.LargeImage) Dim uri As Uri = New Uri(Variable.WebApiUri & "UploadUserImage") Dim uploader As New BackgroundUploader() uploader.SetRequestHeader("Filename", image.Name) Dim upload As UploadOperation = uploader.CreateUpload(uri, image) Await upload.StartAsync |
De Web Api bevat deze code:
Visual Basic .NET:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
| Public Async Function PostFile() As Task(Of HttpResponseMessage) ' Check if the request contains multipart/form-data. If Not Request.Content.IsMimeMultipartContent() Then Throw New HttpResponseException(HttpStatusCode.UnsupportedMediaType) End If Dim root As String = HttpContext.Current.Server.MapPath("~/App_Data") Dim provider = New MultipartFormDataStreamProvider(root) Try Dim sb As New StringBuilder() ' Holds the response body ' Read the form data and return an async task. Await Request.Content.ReadAsMultipartAsync(provider) ' This illustrates how to get the form data. For Each key In provider.FormData.AllKeys For Each Vall In provider.FormData.GetValues(key) sb.Append(String.Format("{0}: {1}" & vbLf, key, Vall)) Next Next ' This illustrates how to get the file names for uploaded files. For Each file In provider.FileData Dim fileInfo As New FileInfo(file.LocalFileName) sb.Append(String.Format("Uploaded file: {0} ({1} bytes)" & vbLf, fileInfo.Name, fileInfo.Length)) Next Return New HttpResponseMessage() With { _ .Content = New StringContent(sb.ToString()) _ } Catch e As System.Exception Return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, e) End Try End Function |
De Web Api constateerd dat de request niet multipart is en genereerd een 415 html error.
Ik heb beide stukken code van een voorbeeld van Microsoft overgenomen, en op internet kom ik ook steeds dezelfde code tegen. Maar bij mij lukt het niet om een file te uploaden. Ik heb het vermoeden dat IIS waar ik de Web Api op host misschien het een en ander in de war schopt, maar ik kom er niet uit.
Home Assistant | Unifi | LG 51MR.U44 | Volvo EX30 SMER+ Vapour Grey, trekhaak | SmartEVSE V3 | Cronos Crypto.com