Media dateien
#1
Geschrieben: 03 June 2022 - 17:12
Sydesoft GmbH
Haferstr. 20
49324 Melle
Tel.: +49 5422 96 399 25
Web:
https://www.sydesoft.de/webshop-erstellen.html
#2
Geschrieben: 04 June 2022 - 12:51
Ich habe das Verzeichnis gefunden: ...\App_Data\Tenants\Default\Media
Allerdings, wenn ich dort ein Bild reinkopiere, dann sehe ich es nicht im Shop. Was mache ich falsch, bzw. wie macht man es richtig?
Der Hintergrund ist, ich habe etwa 20.000 Bilder und über den Medien-Obefläche im Shop dauert es viel zu lange, weil man dort nur 500 Stück oder so gleichzeitig hochladen kann.
Sydesoft GmbH
Haferstr. 20
49324 Melle
Tel.: +49 5422 96 399 25
Web:
https://www.sydesoft.de/webshop-erstellen.html
#3
Geschrieben: 04 June 2022 - 23:34
sehe ich es nicht im Shop
weil die sind nicht im Datenbank referenziert
Du solltest eine Datei (z.B. csv) vorbereiten mit Bilder-URL
Und dann
Konfiguration-->Importieren-->Produkt-->Datei wählen
M.f.G.
E. Kusnezov
www.stahldeko-shop.de
www.stahldeko-shop.com
#4
Geschrieben: 05 June 2022 - 06:19
Übrigens, gibt es ein Beispiel C# Projekt bei der man die library für all diese Dinge nutzen kann? Wie baue ich da die Verbindung zum Shop auf mit der lib? Ich meine nicht die odata Schnittstelle? Die kann zu wenig...
Sydesoft GmbH
Haferstr. 20
49324 Melle
Tel.: +49 5422 96 399 25
Web:
https://www.sydesoft.de/webshop-erstellen.html
#5
Geschrieben: 05 June 2022 - 08:36
um diese später individuell zuzuweisen
20000 individuell zuzuweisen?
dann einfach in Medien-Manager per Drag and Drop.
M.f.G.
E. Kusnezov
www.stahldeko-shop.de
www.stahldeko-shop.com
#6
Geschrieben: 05 June 2022 - 10:26
Sydesoft GmbH
Haferstr. 20
49324 Melle
Tel.: +49 5422 96 399 25
Web:
https://www.sydesoft.de/webshop-erstellen.html
#7
Geschrieben: 05 June 2022 - 11:35
maximal 500 Dateien reinpacken kann
habe gerade 1002 für einmal hochgeladen
M.f.G.
E. Kusnezov
www.stahldeko-shop.de
www.stahldeko-shop.com
#8
Geschrieben: 05 June 2022 - 13:31
Sydesoft GmbH
Haferstr. 20
49324 Melle
Tel.: +49 5422 96 399 25
Web:
https://www.sydesoft.de/webshop-erstellen.html
#9
Geschrieben: 05 June 2022 - 19:42
Sydesoft GmbH
Haferstr. 20
49324 Melle
Tel.: +49 5422 96 399 25
Web:
https://www.sydesoft.de/webshop-erstellen.html
#10
Geschrieben: 05 June 2022 - 20:04
hab es nochmal probiert. von ca. 3000 hat er nur 900 hochgeladen, rest mit fehlermeldung quittiert...also es klappt irgendwie nicht...:-(
Sydesoft GmbH
Haferstr. 20
49324 Melle
Tel.: +49 5422 96 399 25
Web:
https://www.sydesoft.de/webshop-erstellen.html
#11
Geschrieben: 05 June 2022 - 20:14
Sydesoft GmbH
Haferstr. 20
49324 Melle
Tel.: +49 5422 96 399 25
Web:
https://www.sydesoft.de/webshop-erstellen.html
#12
Geschrieben: 06 June 2022 - 12:15
Sydesoft GmbH
Haferstr. 20
49324 Melle
Tel.: +49 5422 96 399 25
Web:
https://www.sydesoft.de/webshop-erstellen.html
#13
Geschrieben: 06 June 2022 - 13:46
Ich werde es jetzt also mithilfe der Shop Funktionen aus den dlls in c# realisieren...
Sydesoft GmbH
Haferstr. 20
49324 Melle
Tel.: +49 5422 96 399 25
Web:
https://www.sydesoft.de/webshop-erstellen.html
#14
Geschrieben: 07 June 2022 - 13:22
Jetzt klappt es mit C#...hier die Funktionen, die ich gebaut habe, falls es jemanden interessiert:
/// <summary> /// Speichert im Dateisystem und in der Datenbank einen Verweis der Bilder. /// </summary> /// <param name="pathToFiles">Pfad zu den png oder jpg/jpeg Bilder. Am besten keine anderen Bildtypen verwenden.</param> /// <param name="folderId">Die ID vom Ordner im Medien-Manager im Shop. Liste der Ordner abrufbar auch über: context.Set<MediaFolder>().ToList();</param> public void UploadPictures(string pathToFiles, int folderId) { List<string> files = Directory.GetFiles(pathToFiles).ToList(); int count = 0; foreach (string file in files) { MemoryStream ms = new MemoryStream(File.ReadAllBytes(file)); string extension = Path.GetExtension(file).TrimStart('.'); string mimeType = $"image/{(extension == "jpg" ? "jpeg" : extension)}"; MediaFile mediaFile = new MediaFile { FolderId = folderId, CreatedOnUtc = DateTime.UtcNow, UpdatedOnUtc = DateTime.UtcNow, MimeType = mimeType, MediaType = "image", Name = Path.GetFileName(file), Extension = extension, IsTransient = true }; mediaFile = context.Set<MediaFile>().Add(mediaFile); context.SaveChanges(); MediaFileSystem mfs = new MediaFileSystem(); FileSystemMediaStorageProvider prov = new FileSystemMediaStorageProvider(mfs); prov.Save(mediaFile, MediaStorageItem.FromStream(ms)); count++; } Console.WriteLine("Files saved: " + count.ToString()); Console.ReadLine(); }
Und hier meine Funktion zum Aufräumen der FileSystemStorage, falls mal in der Datenbank Einträge gelöscht wurden, aber die Dateien immer noch auf der Festplatte sind:
/// <summary> /// Löscht alle Dateien aus Media/Storage, die nicht in der Tabelle MediaFile referenziert sind, also auch nicht im Medien-Manager im Shop sind. /// </summary> public void CleanupMediaFiles() { List<MediaFile> mediaFiles = context.Set<MediaFile>().ToList(); MediaFileSystem mfs = new MediaFileSystem(); FileSystemMediaStorageProvider prov = new FileSystemMediaStorageProvider(mfs); string storageFoldername = "Storage"; int count = 0; var folders = mfs.ListFolders(storageFoldername); foreach (var folder in folders) { var folderPath = Path.Combine(storageFoldername, folder.Name); var files = mfs.ListFiles(folderPath); if (files.Count() > 0) { foreach (var file in files) { string id = Path.GetFileNameWithoutExtension(file.Name.TrimStart('0')); if (!mediaFiles.Exists(x => x.Id.ToString() == id)) { mfs.DeleteFile(Path.Combine(folderPath, file.Name)); count++; } } } else { mfs.DeleteFolder(folderPath); } } Console.WriteLine("Files deleted: " + count.ToString()); Console.ReadLine(); }
Falls jemand dazu Fragen hat, kann er mich auch direkt über unsere Website kontaktieren: https://www.sydesoft.de/kontakt.html
Sydesoft GmbH
Haferstr. 20
49324 Melle
Tel.: +49 5422 96 399 25
Web:
https://www.sydesoft.de/webshop-erstellen.html