Ich habe dies getan, um eine lange Zeit vor in VB.NET, ich entfernt redundanten Code und hier, wie es aussehen soll:
HTML-Teil:
<form action="AddToDatabase" method="post" enctype="multipart/form-data">
<input type="id" name="pictureId"/> <br/>
<input type="file" name="picture" accept="image/gif, image/jpeg" required/> <br/>
<input type="submit" value="Upload" />
</form>
diese nimmt das geblättert Bild und geht auf die AddToDatabase Funktion innerhalb Regler
Controller:
Public Class HomeController
Public Function AddToDatabase(ByVal pictureId as Long, ByVal picture As HttpPostedFileBase)
Dim manager As New DbWorks
Dim result = manager.SaveAndResize(pictureId, picture)
Return Content(result)
End Class
-Controller pictureid und Bild selbst nehmen und übergeben sie an DBWorks Service-Klasse, die die ganze Arbeit
DBWorks Klasse:
Public Class DbWorks
Public Function SaveAndResize(ByVal picturetId As Long, ByVal picture As HttpPostedFileBase) As String
Dim picSource As Image = Image.FromStream(picture.InputStream)
Dim bmSource As New Bitmap(picSource)
Dim bmDest As New Bitmap(300, 300) //Saves in 300x300 resolution
Dim grDest As Graphics = Graphics.FromImage(bmDest)
grDest.DrawImage(bmSource, 0, 0, bmDest.Width, bmDest.Height)
Dim picDest As Image = bmDest
picDest.Save(HttpContext.Current.Server.MapPath("~/Pictures/" + CStr(pictureId) + ".jpeg"))
Dim path = ("~/Pictures/" + CStr(pictureId) + ".jpeg")
Return path
End Function
End Class
Die Funktion SaveAndResize nimmt das Bild mit der ID und wandelt es in eine Bitmap um. Es wird in einer Auflösung von 300x300 gespeichert, wodurch ein Pfad zu Ihrer Datei in dem System erstellt wird, das mit einer PictureId verknüpft ist.
Vergessen Sie nicht, System.Drawing-Bibliothek hinzuzufügen, um mit Ihrem Image zu verwalten.
P.S. Ich bin mir ziemlich sicher, dass du deine Arbeit in C# machst, aber es wird nicht viel Zeit brauchen, um sie zu transformieren. In diesem Fall können Sie auch die Verwendung der jquery-Bibliothek vermeiden.
Keine Notwendigkeit, 2 verschiedene Bilder hochladen. Einfacher Weg wäre, das Originalbild hochzuladen und ein neues Bild zu erstellen und es auf einem anderen Pfad auf dem Server zu speichern. Sie können dies mit C# auf der Serverseite tun. – user3151766
@ user3151766 Ich möchte jquery einbeziehen, weil ich eine Zuschneidefunktionalität hinzufügen möchte, damit der Benutzer/Uploader auswählen kann, welcher Teil des Fotos das Thumbnail –
sein soll, das sich https://fengyuanchen.github.io/croperjs/ ansehen lässt werde dringend empfohlen. Wenn Sie den Client für diese Art von Arbeit verwenden, können Sie die unnötige Arbeit Ihres Servers auslagern und zukünftige Funktionen zulassen, wenn Sie möchten, dass Ihr Benutzer den Ausschnitt selbst erstellt –