Я хотел передать данные большого двоичного объекта со стороны клиента на сторону сервера. Мои данные Blob: "size: 57177 type:" application / zip " proto : Blob"
Я пробовал эти строки кода
var base64data;
var reader = new FileReader();
reader.readAsDataURL(b); //convert blob into base64
reader.onloadend = function () {
var Filedata = new Object();
Filedata.Filename = c;
Filedata.MID = "716274527";
Filedata.theblob = base64data;
$.ajax({
url: 'http://localhost:55490/api/BCFReceiver/receiveBCFFile',
type: 'Post',
dataType: 'binary',
contentType: 'application/json',
// processData: false,
data: Filedata ,
success: function (data, textStatus, xhr) {
console.log(data);
},
error: function (xhr, textStatus, errorThrown) {
console.log('Error in Operation');
}
});
И мой API Контроллер:
public class Filedata
{
public string Filename { get; set; }
// public string MID { get; set; }
public string theblob { get; set; }
}
// GET: FileReceive
[EnableCors(origins: "http://mywebclient.azurewebsites.net", headers: "*", methods: "*")]
[System.Web.Http.HttpPost]
[System.Web.Http.Route("api/BCFReceiver/receiveBCFFile")]
public HttpResponseMessage receiveBCFFile(Filedata filedata)
{
String path = HttpContext.Current.Server.MapPath("~/ImageStorage"); //Path
//Check if directory exist
if (!System.IO.Directory.Exists(path))
{
System.IO.Directory.CreateDirectory(path); //Create directory if it doesn't exist
}
var filename = filedata.Filename;
var basestring = filedata.theblob;
//set the image path
string imgPath = Path.Combine(path, filename);
byte[] decodedByte = Convert.FromBase64String(basestring);
File.WriteAllBytes(imgPath, decodedByte);
return Request.CreateResponse(HttpStatusCode.OK, "File saved");
}
}
Я просто хочу передать свои данные большого двоичного объекта на сторону сервера с преобразованием данных в любой другой формат или без него. Здесь reader.readAsDataURL (b); b содержит данные blob, а тип данных - application / zip.