Мой код javascript отправляет BLOB-данные для обработчика в C#. Мой Javascript-код работает нормально, и я уже пытался получить данные от клиента (javascript) и передать их обработчику C# и сохранить их в локальной папке.Чтобы добавить байт [] в строку в C#
Вместо сохранения данных в папке, я хочу сохранить его в string
.
Мой обработчик каждый раз получает часть моей информации как byte[]
.
мой Javascript:
xhr = new XMLHttpRequest();
// this is not the complete code
// I slice my file and push them in var blobs = [];
blobs.push(file.slice(start, end));
while (blob = blobs.shift()) {
xhr.send(blob);
count++;
}
Мой C# Обработчик: В данном случае bool ok
никогда не будет установлен в true
. Как я могу получить все мои файлы куском, когда я отправляю их из javascript; и вместо сохранения в папке, сохраняя его в строке?
public void ProcessRequest(HttpContext context)
{
try
{
byte[] buffer = new byte[context.Request.ContentLength];
context.Request.InputStream.Read(buffer, 0, context.Request.ContentLength);
string fileSize = context.Request.Headers.Get("X_FILE_SIZE");
bool ok = false;
System.Text.StringBuilder myData = new System.Text.StringBuilder();
myData.Append(buffer);
if(myData.Length == int.Parse(fileSize)){ ok=true; }
}
catch (Exception)
{
throw;
}
}
Входит в кодировку.Getstring: https://msdn.microsoft.com/en-us/library/744y86tc%28v=vs.110%29.aspx – Flynn1179
В зависимости от кодировки длина массива байтов и длина строки может быть разной. –
Возможно, было бы лучше преобразовать его в представление base64. Вы можете использовать Convert.ToBase64String - https://msdn.microsoft.com/en-us/library/system.convert.tobase64string(v=vs.110).aspx и Convert.FromBase64String - https://msdn.microsoft. ком/EN-US/библиотека/system.convert.frombase64string (v = vs.110) .aspx. В javascript это будут btoa() и atob(). – Igor