Inhalte aufrufen

Profilbild
- - - - -

Media dateien


  • Bitte melden Sie sich an, um eine Antwort zu verfassen.
13 Antworten zu diesem Thema

#1 wseibel

wseibel

    Benutzer

  • Members
  • 26 Beiträge

Geschrieben: 03 June 2022 - 17:12

Wo liegen die media Dateien auf dem Server im Dateisystem?

Sydesoft GmbH
Haferstr. 20
49324 Melle
Tel.: +49 5422 96 399 25
Web:

http://www.sydesoft.de

https://www.sydesoft.de/webshop-erstellen.html

 

 

 


#2 wseibel

wseibel

    Benutzer

  • Members
  • 26 Beiträge

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:

http://www.sydesoft.de

https://www.sydesoft.de/webshop-erstellen.html

 

 

 


#3 kusnez

kusnez

    V.I.P

  • Members
  • 2779 Beiträge

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 wseibel

wseibel

    Benutzer

  • Members
  • 26 Beiträge

Geschrieben: 05 June 2022 - 06:19

Ja das habe ich schon gemacht und es funktioniert auch, aber der Shop legt auch pro Bild einen Artikel/Produkt an und das will ich nicht. Ich will nur die Bilder in den Medien im Shop haben, um diese später individuell zuzuweisen.
Ü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:

http://www.sydesoft.de

https://www.sydesoft.de/webshop-erstellen.html

 

 

 


#5 kusnez

kusnez

    V.I.P

  • Members
  • 2779 Beiträge

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 wseibel

wseibel

    Benutzer

  • Members
  • 26 Beiträge

Geschrieben: 05 June 2022 - 10:26

Individuell im Sinne von über die Api automatisiert, aber die Daten für die Zuweisung kommen von SAP und das ist pro Artikel individuell, es gibt nämlich mehr Artikel als Bilder. Aber wie auch immer, die drag n drop Funktion im Medien Manager ist nicht so toll, weil ich dort nur maximal 500 Dateien reinpacken kann. Das im 500er Schritten zu machen bei 23k Bilder dauert zu lange. Gibt es noch einen anderen Weg? Oder kann man das 500er Limit erhöhen?

Sydesoft GmbH
Haferstr. 20
49324 Melle
Tel.: +49 5422 96 399 25
Web:

http://www.sydesoft.de

https://www.sydesoft.de/webshop-erstellen.html

 

 

 


#7 kusnez

kusnez

    V.I.P

  • Members
  • 2779 Beiträge

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 wseibel

wseibel

    Benutzer

  • Members
  • 26 Beiträge

Geschrieben: 05 June 2022 - 13:31

Oh OK. Kann man das irgendwo einstellen? Ich probiere nachher auch mal in unserem Shop...

Sydesoft GmbH
Haferstr. 20
49324 Melle
Tel.: +49 5422 96 399 25
Web:

http://www.sydesoft.de

https://www.sydesoft.de/webshop-erstellen.html

 

 

 


#9 wseibel

wseibel

    Benutzer

  • Members
  • 26 Beiträge

Geschrieben: 05 June 2022 - 19:42

Ich glaube es klappt doch. Da kommen zwar erstmal viele Fehlermeldungen aber nach und nach arbeitet er alle Bilder ab und lädt es hoch. Danke für den test mit den 1002 Dateien.

Sydesoft GmbH
Haferstr. 20
49324 Melle
Tel.: +49 5422 96 399 25
Web:

http://www.sydesoft.de

https://www.sydesoft.de/webshop-erstellen.html

 

 

 


#10 wseibel

wseibel

    Benutzer

  • Members
  • 26 Beiträge

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:

http://www.sydesoft.de

https://www.sydesoft.de/webshop-erstellen.html

 

 

 


#11 wseibel

wseibel

    Benutzer

  • Members
  • 26 Beiträge

Geschrieben: 05 June 2022 - 20:14

Die Fehlermeldung ist übrigens: Sie können keine weiteren Dateien hochladen.

Sydesoft GmbH
Haferstr. 20
49324 Melle
Tel.: +49 5422 96 399 25
Web:

http://www.sydesoft.de

https://www.sydesoft.de/webshop-erstellen.html

 

 

 


#12 wseibel

wseibel

    Benutzer

  • Members
  • 26 Beiträge

Geschrieben: 06 June 2022 - 12:15

Ich glaub man muss es zufuss über die Datenbank machen, bzw. so wie es im Quellcode gemacht wird. Das blöde ist, wenn eine Datei/Bild gelöscht wird im Shop über den Medien Manager, dann bleibt die eigentliche Datei in der Datenbank oder im Dateisystem bestehen (je nachdem was konfiguriert ist). Das müllt auf Dauer den Server zu... Wie geht man vor, um das zu verhindern?

Sydesoft GmbH
Haferstr. 20
49324 Melle
Tel.: +49 5422 96 399 25
Web:

http://www.sydesoft.de

https://www.sydesoft.de/webshop-erstellen.html

 

 

 


#13 wseibel

wseibel

    Benutzer

  • Members
  • 26 Beiträge

Geschrieben: 06 June 2022 - 13:46

Korrektur: der Medien Manager löscht auch die Bild datei...
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:

http://www.sydesoft.de

https://www.sydesoft.de/webshop-erstellen.html

 

 

 


#14 wseibel

wseibel

    Benutzer

  • Members
  • 26 Beiträge

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:

http://www.sydesoft.de

https://www.sydesoft.de/webshop-erstellen.html