416 Stimmen

Kann ein Byte[] Array in eine Datei in C# geschrieben werden?

Ich versuche, einen Brief zu schreiben. Byte[] Array, das eine vollständige Datei darstellt, in eine Datei.

Die Originaldatei vom Client wird über TCP gesendet und dann von einem Server empfangen. Der empfangene Stream wird in ein Byte-Array eingelesen und dann zur Verarbeitung durch diese Klasse gesendet.

Damit soll vor allem sichergestellt werden, dass der Empfänger TCPClient für den nächsten Stream bereit ist und die Empfangsseite von der Verarbeitungsseite trennt.

Die FileStream Klasse nimmt kein Byte-Array als Argument und auch kein anderes Stream-Objekt (mit dem Sie Bytes in den Stream schreiben können).

Ich möchte, dass die Verarbeitung von einem anderen Thread als dem ursprünglichen (dem mit dem TCPClient) durchgeführt wird.

Ich weiß nicht, wie ich das umsetzen kann, was sollte ich versuchen?

6voto

mmx Punkte 400975

Ja, warum nicht?

fs.Write(myByteArray, 0, myByteArray.Length);

2voto

PatsonLeaner Punkte 1092

Versuchen Sie BinaryReader:

/// <summary>
/// Convert the Binary AnyFile to Byte[] format
/// </summary>
/// <param name="image"></param>
/// <returns></returns>
public static byte[] ConvertANYFileToBytes(HttpPostedFileBase image)
{
    byte[] imageBytes = null;
    BinaryReader reader = new BinaryReader(image.InputStream);
    imageBytes = reader.ReadBytes((int)image.ContentLength);
    return imageBytes;
}

1voto

Asp.net (c#)

// Dies ist der Serverpfad, auf dem die Anwendung gehostet wird.

var path = @"C:\Websites\mywebsite\profiles\";

//Datei in Bytes Array

var imageBytes = client.DownloadData(imagePath);

//Dateierweiterung

var fileExtension = System.IO.Path.GetExtension(imagePath);

//Schreiben (Speichern) der Dateien im angegebenen Pfad. Anhängen der Mitarbeiter-ID als Dateiname und Dateierweiterung.

File.WriteAllBytes(path + dataTable.Rows[0]["empid"].ToString() + fileExtension, imageBytes);

Nächster Schritt:

Möglicherweise müssen Sie dem iis-Benutzer Zugriff auf den Profilordner gewähren.

  1. Rechtsklick auf den Profilordner
  2. zur Registerkarte Sicherheit gehen
  3. klicken Sie auf "Bearbeiten",
  4. Geben Sie "IIS_IUSRS" die volle Kontrolle (WENN DIESER BENUTZER NICHT EXISTIERT IST, KLICKEN SIE AUF HINZUFÜGEN UND GEBEN SIE "IIS_IUSRS" EIN UND KLICKEN SIE AUF "Namen prüfen".

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X