Ich versuche FineUploader in einer ASP.NET MVC5-Anwendung zu verwenden. Wenn ich versuche, eine Datei mit FineUploader hochzuladen, binde ich in meinem Controller Base64 das Richtliniendokument, signiere das Basis-64-codierte Dokument und gebe dann die Ergebnisse als ein JSON-Objekt gemäß der Dokumentation zurück. Ich erhalte jedoch den folgenden Fehler auf meiner Seite, nachdem der Controller den JSON zurückgibt:FineUploader - Fehler bei der JSON-Antwort - "Die Antwort enthält die base64-kodierte Richtlinie nicht!"
"Response enthält nicht die Base64-codierte Richtlinie!"
Es muss etwas mit der Formatierung meiner JSON-Nutzdaten nicht stimmen. Hier der relative Teil des Codes:
byte[] byteArrayPolicy = System.Text.Encoding.UTF8.GetBytes(jsonStringFull);
string base64Policy = Convert.ToBase64String(byteArrayPolicy);
var signature = kha.ComputeHash(Encoding.UTF8.GetBytes(base64Policy));
var signatureString = ToHexString(signature, true);
string payloadString = @"{ ""policy"":""" + base64Policy + @"""," + @"""signature"":""" + signatureString + @"""}";
JsonResult jsonRequest = Json(payloadString);
return jsonRequest;
Gibt es etwas falsch mit der Formatierung des JSON-Objekts, das ich zurückgebe? Die Richtlinie ist eine exakte Kopie der Richtlinie, die ich von FineUploader erhalten habe, nur wurde sie Base64-codiert. Die Signatur ist eine hexadezimale Zeichenfolge. Hier ist ein Beispiel von dem, was Nutzlast wie folgt aussieht:
"{ \"policy\":\"eyJleH...=\",\"signature\":\"da186a017b038382e2cc21dfa4f1fbf806c51adf92984a9b95f1aa845aeb72e4\"}"
Beachten Sie die „...“ in der Base64 Politik der Kürze halber war.
Der Fehler, den ich erhalte, besagt, dass die Antwort keine Base64-codierte Richtlinie enthält, aber es scheint mir, dass sie die Base64-codierte Richtlinie enthält. Ist es möglich, dass meine Unterschrift falsch ist? Sollte es nicht in eine Hex-Zeichenfolge umgewandelt werden, nachdem ich die Signatur als Byte-Array berechnet habe?
Hier ist die eigentliche paypload nach Chrome:
"{ \"policy\":\"eyJleHBpcmF0aW9uIjoiMjAxNi0wNC0xNFQxNDo0MzozMS4zOTZaIiwiY29uZGl0aW9ucyI6W3siYWNsIjoicHJpdmF0ZSJ9LHsiYnVja2V0IjoiZnVuZHRoZWZ1bmVyYWwifSx7IkNvbnRlbnQtVHlwZSI6ImltYWdlL2pwZWcifSx7InN1Y2Nlc3NfYWN0aW9uX3N0YXR1cyI6IjIwMCJ9LHsieC1hbXotYWxnb3JpdGhtIjoiQVdTNC1ITUFDLVNIQTI1NiJ9LHsia2V5IjoiNGZkOGIzMDMtMmQ3Zi00MWJlLThiYWItYzUyMjBiNmRlMjQ1LmpwZyJ9LHsieC1hbXotY3JlZGVudGlhbCI6IkFLSUFKUkhDU09STExFUkpVMkVBLzIwMTYwNDE0L3VzLWVhc3QtMS9zMy9hd3M0X3JlcXVlc3QifSx7IngtYW16LWRhdGUiOiIyMDE2MDQxNFQxNDM4MzFaIn0seyJ4LWFtei1tZXRhLXFxZmlsZW5hbWUiOiIyMDE2LTAzLTI0LmpwZyJ9XX0=\",\"signature\":\"c592b3bca0dedba10301e06df37760cb527ac0a83112ae9b668dce00f0b23465\"}"
Ich kann nicht feststellen, warum es nicht gültig JSON ist. Es ist in dem Format, das in der Dokumentation angegeben ist, soweit ich das beurteilen kann. - http://docs.fineuploader.com/endpoint_handlers/amazon-s3.html – jjspierx