Web-Api-2-RESTFUL-Bild Hochladen
Ich bin neu in Web-Api, und ich arbeite an meinem ersten Projekt. Ich arbeite an mobilen CRM-system für unser Unternehmen.
Will ich speichern, Firmen-logo, Kunden-Gesicht foto etc.
Fand ich einige tutorials zu diesem Thema, aber leider einige von Ihnen war alt (nicht async) und die andere funktioniert nicht.
Am Ende fand ich diese:
http://www.intstrings.com/ramivemula/articles/file-upload-using-multipartformdatastreamprovider-in-asp-net-webapi/
Es funktioniert einwandfrei, aber ich weiß nicht, ein paar Dinge zu verstehen.
1) Sollte ich App_Data (oder jede andere Ordner wie /Uploads) für das speichern dieser Bilder, oder besser gesagt speichern Bilder in der Datenbank?
2) Kann ich nur unterstützten Bilder wie .jpg -, .png und lehnen jegliche anderen Dateien?
3) Wie kann ich das bearbeitete Bild im upload-Methode? Wie die Größe, die Reduzierung der Größe der Datei, Qualität etc?
Danke
Du musst angemeldet sein, um einen Kommentar abzugeben.
Keiner der Fragen sind tatsächlich auf die Web API oder REST.
Alle der oben genannten Arbeit in Asp.Net, MVC, Web API 1 und 2, benutzerdefinierte HTTP-Handler, die im Grunde in jedem .Net-code.
1) Wir speichern die Dateien in einem anderen Speicherort als app_data. Wir haben ein paar Gruppen von Kunden, und wir Gaben Ihnen alle eine einzigartige Ordner, die wir aus der Datenbank. Die Speicherung in der Datenbank ist auch eine option, aber wenn Sie unten gehen diesen Weg, stellen Sie sicher, dass die Dateien, die Sie speichern gehören nicht direkt zu einer Tabelle, die Sie abrufen müssen oft. Es gibt kein richtig oder falsch, sondern haben einen read auf diese Frage und Antwort für einige vor-und Nachteile.
2) Wenn Sie foollowed, dass Führer, können Sie ein Häkchen setzen innerhalb der Schleife prüfen Sie die Datei-Endung
3) Größenanpassung der Bilder ist etwas, was ich nie persönlich gemacht meiner selbst, aber ich denke, Sie sollten einen Blick auf das System.Zeichnung.Graphics-namespace.
Gefunden ein link mit einer akzeptierten Antwort für downresize Bild: ASP.Net MVC Bild Hochladen Größenänderung durch downscaling oder Polsterung
@Binke
Nie Benutzer string-Operationen auf Pfaden. I. e. mit dem Namen.split('.')[1] wird nicht zurückkehren die Erweiterung bei Dateinamen wie diesem: some.file.txt und mit fehl-index out of range Fehler, wenn die Datei hat keine Erweiterung.
Verwenden Sie immer die Datei-API, also Weg.GetExtension.
Auch die Erweiterung um content-Typ ist nicht besonders sicher, wenn die Bilder und videos sind eingebunden, denken Sie nur an avi-Erweiterung, was wird von vielen video-Formate.
Dateien.Add(Path.GetFileName(Datei.LocalFileName)) sollten Dateien sein.Add(Dateiname).