Bild senden über web-service
Möchte ich mal ein Programm von visual studio 2008 (C# und ASP), web-Anwendung und windows-Anwendung.
Ich möchte, um Kunden zu bekommen Bilder in web-app(upload) und speichert Sie in der DB (mysql), dann schickt diese Bilder zu windows-app über web-service (so dass ich neue web-service, nicht-web-site). Aber ich habe 2 Probleme:
-
Habe ich 2 Möglichkeiten, Bilder speichern in mysql, zuerst sollte ich haben BLOB-Feld in der DB -, dass es mehr Platz in Anspruch nimmt-, der zweite sollte ich speichern einfach einen Namen für jedes Bild in der DB(also Bild in einem Ordner) -auf diese Weise weiß ich nicht, wie Bild von Kunden und speichern Sie diese in diesem Ordner. welche? Oder welche anderen?
-
Wie (code) kann ich die übertragung von Bild über web-service(Byte [], oder? ).
Du musst angemeldet sein, um einen Kommentar abzugeben.
Eine der Optionen, um die Bilddaten zu übertragen mithilfe von WCF ist, zu konvertieren image zu byte array und übergeben es an den Kunden aus. Dann konvertieren von byte [], um das Bild auf der client-Seite.
Frage 1:
Die Bilder oder links in der DB zu erniedrigen, ist alt und immer noch ungelöst. Es war ein microsoft white paper kam heraus, dass die Empfehlung (für SQL Server 2008, so kann Ihre Laufleistung variieren), die für die Bilder/binaries unter 150k DB-storage ist ein guter Kompromiss. Wenn die meisten Bilder sind über, gehen mit links, wenn unter, speichern in DB.
Frage 2:
Des webservice einen http-Kontext-Objekt, so könnte man einfach die
Antwort.BinaryWrite
Methode, das brauchtbyte[]
. Sie müssen schreiben Sie den korrekten Header (mime-type, usw).Einer Datei auf der Festplatte, die einfachste Sache zu tun ist, verwenden Sie die
Antwort.WriteFile
- Methode mit einem Datei-Pfad-argument.In jedem Fall müssen Sie abfangen, dies auf dem client und wieder zurück konvertieren zu einem Bild.