Ich habe ein Problem. Ich habe docx Datei als Byte-Array in der Datenbank gespeichert. Ich brauche eine URL dieser Datei. Url sollte wie http://my-site.com sein ... aber ich habe keine Ahnung, wie ich es erreichen könnte. Ich lese viele Themen mit Memorystream, Filestream usw. Aber ich verstehe immer noch nicht, wie ich das erreichen kann. Ich schreibe in ASP MVC C#.Wie URL aus Bytes Array erhalten?
Antwort
Für den ASP.NET MVC-Teil können Sie die File
-Methode des Controllers verwenden, um ein Byte-Array als Dateidownload zurückzugeben, wie in diesem Beispiel.
public class HomeController : Controller
{
public ActionResult Download(string id)
{
byte[] fileInBytes = GetFileDataFromDatabase(id);
return File(fileInBytes, "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
id + ".docx");
}
private byte[] GetFileDataFromDatabase(string id)
{
// your code to access the data layer
return byteArray;
}
}
Die URL wäre: http://.../home/download/{someId}
Sollte ich in der Lage sein, eine Datei nach dem Download herunterzuladen? Ich habe keine Ergebnisse. Wie erhalten Sie diese URL? Sorry für blöde Fragen, aber die Arbeit mit Dateien ist sehr schwierig für mich. – smile
Ich habe gerade mein Beispiel mit der URL (nach dem Standard-MVC-Routing) http: // localhost: .../home/download/1234 ausgeführt und der Browser hat mir einen Download-Dialog aufgefordert. Aber das ist nur ein Beispiel - bitte poste etwas Code deines Controllers, wenn es nicht funktioniert. –
Etwas wie folgt aus:
[HttpGet]
[Route("file/{fileId}")]
public HttpResponseMessage GetPdfInvoiceFile(string fileId)
{
var response = Request.CreateResponse();
//read from database
var fileByteArray= ReturnFile(fileId);
if (fileByteArray == null) throw new Exception("No document found");
response.StatusCode = HttpStatusCode.OK;
response.Content = new StreamContent(new MemoryStream(fileByteArray));
response.Headers.Add("Access-Control-Expose-Headers", "Content-Disposition");
response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
{
FileName = fileId+ ".docx"
};
response.Content.Headers.ContentType =
new MediaTypeHeaderValue("application/vnd.openxmlformats-officedocument.wordprocessingml.document");
response.Headers.Add("Content-Transfer-Encoding", "binary");
response.Content.Headers.ContentLength = fileByteArray.Length;
return response;
}
oder wenn Sie eine einfach Razor Mvc-Website Fileresult verwenden: Download file of any type in Asp.Net MVC using FileResult?
Diese Implementation ist für eine Rest-API, jetzt eine triviale Erklärung: Da Sie den Shebang aus der DB lesen, müssen Sie ihn dem Client zur Verfügung stellen, sobald die Antwort den Controller verlässt (um ihn im Speicher oder auf der Platte zu behalten) vom Kunden), mehr Details: http://stackoverflow.com/questions/8156896/difference-between-memory-stream-and-filestream – SilentTremor
Mein schlechtes, benutzte ich zwei Gedächtnisströme :), aktualisiert – SilentTremor
- 1. Verschiedene Bytes aus der gleichen Audiodatei erhalten
- 2. Wie erhalten Sie Bytes Größe für beliebige Array in Swift?
- 3. Wie Bytes erhalten aus einer PNG-Datei C#
- 4. (Rails) Wie ID aus Bearbeitungs-URL erhalten
- 5. Erhalten Butzen aus aktuellen url
- 6. Swift Bit-Array Bytes Array (UInt8 Array)
- 7. Wie Array-Objektwerte aus JSON-Antwort erhalten?
- 8. Wie JSON-Array erhalten Objekt aus
- 9. PHP erstellen Array aus getrimmten url
- 10. Bestimmte Array aus einem multidimensionalen Array erhalten
- 11. Lesen von Bytes aus Python String
- 12. URL erhalten und entfernen id aus es
- 13. Ein Array von Bytes aus Windows :: Storage :: Streams :: IBuffer
- 14. Sails.js - vorherige URL aus Anfrage erhalten
- 15. Dateigröße aus Bytes-Array (ohne Speichern auf CD)
- 16. JAVA Array of Int Bytes Array
- 17. Erhalten eines int32_t oder int64_t Wert aus einer char Array
- 18. Java: Konvertieren Liste von Bytes in Array von Bytes
- 19. Powershell Bytes zu Bit Array
- 20. Wie spielt man mp3 aus Bytes?
- 21. Wie bekomme ich Winkel aus Bytes C#
- 22. Wie produziere ich 8 Bytes aus 4 Bytes mit einer reproduzierbaren Operation?
- 23. Nachrüstung. java.net.ProtocolException: erwartet * Bytes aber erhalten *
- 24. erhalten Unicode-Puffer Bytes in C# gibt '??????'
- 25. Formatieren von URL aus assoziativem Array
- 26. Entfernen von NUL-Zeichen aus Bytes
- 27. Java - Wiederherstellen von Bytes aus String
- 28. Compressed Array Bytes Java von .NET Webservice
- 29. Lodash erhalten Schlüsselwerte aus Array von Objekten
- 30. Füllen eines Bytes [] mit mehreren Bytes [] s
Ich denke du meinst Die URL befindet sich im Dokument? Nicht sehr effizient, aber wenn Sie nicht viel über Bytes verstehen, können Sie das Dokument einfach in eine Zeichenfolge konvertieren und dann mit Methoden suchen, die Sie verwenden können. http://stackoverflow.com/questions/11654562/how-convert-byte-array-to-string –