[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Sep 2005
    Beiträge
    40

    IFSFileOutputStream Komplette Files übergeben!

    Hallo!

    Ich habe ein Problem. Und zwar scann ich Bilder ein, die liegen auf der Platte meines PC. Ich will sie nun auf die iSeries bekommen. Ich hab mir gedacht, nimm IFS. Aber wenn ich das Bild wieder einlese und dann die bytes rauslese, und dann per IFSFileOutputStream auf die iSeries packe, kann ich die Datei nicht mehr öffnen (Ist ein Tiff). Mir geht die Codierung warscheinlich verloren, beim vielen hin und herschaufeln. Meine Frage:

    Gibt es eine Möglichkeit die File direkt a la copy und paste auf die iSeries zu bekommen? Mir fällt nix ein!

    Vielen Dank

    Flo

  2. #2
    Registriert seit
    Jan 2001
    Beiträge
    835
    Hallo Flo,

    erstelle auf der AS/400 mit dem Operation Navigator
    eine Netzlaufwerksfreigabe.

    Anschließend die Datei mit dem Windows Explorer kopieren.

    Der Netsever wird mit dem Befehl
    STRTCPSVR SERVER(*NETSVR) gestartet

    Das war es auch schon.

    Gruss
    Michael

  3. #3
    Registriert seit
    Sep 2005
    Beiträge
    40
    Danke für die Schnelle Antwort!

    Aber das Problem ist, das das Kopiertool an anderen Arbeitsplätzen auch genommen wird, und da nicht sicher ist ob die Netzlaufwerksfreigabe vorhanden ist muss /soll es komplett über Java erfolgen! Der Weg über Windows fällt zu 99 % flach!

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.248
    Wenn die Freigabe über den Netserver erteilt wurde und eine Gast-Profil eingerichtet ist, kann der Zugriff direkt per UNC-Namen "\\MyAs400\Freigabe\File" erfolgen.
    Ich denke, auch Java hat eine einfache FileCopy-Funktion.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  5. #5
    Registriert seit
    Sep 2005
    Beiträge
    40
    Mein Versuch über Java, war dieser..

    Code:
    Image img2 =Jimi.getImage("C:\\Programme\\Scan\\" + name+ i + ".tif");
                        
                        while(img2.getWidth(bla)==-1){
                            
                            System.out.println("not Yet");
                            
                        }
                        
                        
                        IFSFile myFile = new IFSFile(as400, "/data/PROD/nvonline/archiv/BST041/"+name+i+".tif");
                        BufferedImage bi2 = createBufferedImage(img2);
                        try {
                            
                            
                            
                            IFSFileOutputStream IFSfos = new IFSFileOutputStream(myFile);
                            byte[] data = ((DataBufferByte) bi2.getData().getDataBuffer()).getData();
                            
                            IFSfos.write(data);
                            IFSfos.close();
                            
                        } catch (AS400SecurityException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }
    Aber mir geht die Tiff Codierung verloren, so dass es nicht möglich ist, die Tiff nach dem Senden an die AS400 zu öffnen!

    Ich werde mal das mit dem Gastzugriff ansehen Danke für den Tipp

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.248
    Ich denke mal, du musst irgendwo den Binär-Modus angeben, da ggf. eine Code-Wandlung in eine andere CCSID erfolgt.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  7. #7
    Registriert seit
    Oct 2004
    Beiträge
    240
    Ich wette eine Flasche Wein, dass dir die Freigabe auch nichts hilft.

    In dem Source wird die Grafik in das Java-interne Raster Format (so eine Art Rawdatei) konvertiert. Wenn man das ausgibt, hat das nichts mehr mit Tiff zu tun.

    Wenn man eine Datei kopieren will, dann holt man sich den InputStream und legt vielleicht noch einen Buffer dazwischen.


    Gruß
    Robert

  8. #8
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    Hallo,

    da sind (mindestens) zwei Probleme im Spiel:
    dein Image macht aus dem TIFF ein Objekt, das lokal (unter Windows) als Grafik darstellbar ist, zum rausschreiben nimmst du was aus der Spielzeugkiste Toolbox, das ein Streamfile auf einer AS400 repräsentiert und schaufelst dann ByteArrays aus einem (Windows) Image in ein (AS400) Streamfile, da steht dann zwar was drin, aber eben nicht das, was drin stehen soll, das ist mehr als ein Codepage Problem!
    - es darf keine Interpretation der Grafikdaten stattfinden
    - Finger weg von dem Toolboxkram, wo man ihn nicht braucht!
    weiter ist deine Sicherheitsabfrage (while(img2.getWidth(bla)==-1)) noch verdächtig, das sieht wiedr mal nach HaufenkackerGraberPrinzip aus, wenn da nämlich gerade was am scannen ist, dann wird da Murks kopiert!
    Mit irgendwelchen gemapten Laufwerken und Oops Nerv kannst du das höchstens mit zusätzlicher Hilfe eines Lego Roboters automatisieren.
    Der Vorschlag von Robert (read aus FileInputStream write in FileOutputStream könnte klappen, allerdings macht der Konstruktor von FileOutputStream auch wieder was Betriebssystem spezifisches, was durchaus Nebenwirkungen haben könnte.
    Am sichersten und einfachsten scheint mir hier eigentlich good old FTP, das man auch aus Java ausführen kann (den erforderlichen Client kann man von z.B. Apache holen), da hier der erforderliche binary Mode explizit vorgesehen ist.

    mfg

    Dieter Bender

    Zitat Zitat von Deficiency Beitrag anzeigen
    Hallo!

    Ich habe ein Problem. Und zwar scann ich Bilder ein, die liegen auf der Platte meines PC. Ich will sie nun auf die iSeries bekommen. Ich hab mir gedacht, nimm IFS. Aber wenn ich das Bild wieder einlese und dann die bytes rauslese, und dann per IFSFileOutputStream auf die iSeries packe, kann ich die Datei nicht mehr öffnen (Ist ein Tiff). Mir geht die Codierung warscheinlich verloren, beim vielen hin und herschaufeln. Meine Frage:

    Gibt es eine Möglichkeit die File direkt a la copy und paste auf die iSeries zu bekommen? Mir fällt nix ein!

    Vielen Dank

    Flo
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  9. #9
    Registriert seit
    Sep 2005
    Beiträge
    40
    Das mit FTP muss ich prüfen... weis net ob das bei unserer AS400 an ist!?!?!

    Wenn ich bei doch bei IFS bleibe, vielleicht könnt ihr mir dann nochmal helfen. Und zwar will ich die Datei per Stream lesen und schreiben (wie Robert gesagt hat)
    Dies erfolgt leider Byte weise, bei ner Großen Datei treib ich die Auslastung der Maschine nach oben. Kann ich die Datei nicht in einem Rutsch schreiben? Hab bei Mr. Google nix gefunden!

    Thx Flo

  10. #10
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    Hallo,

    da reicht es aus, wenn du über den FileInputStream einen BufferedReader drüber legst, also irgendwas in der Art:

    FileInputStream fis = new FileInputStream(...);
    BufferedReader buffy = new BufferedReader(fis);

    lesen kannst du weiterhin aus fis

    mfg

    Dieter Bender


    Zitat Zitat von Deficiency Beitrag anzeigen
    Das mit FTP muss ich prüfen... weis net ob das bei unserer AS400 an ist!?!?!

    Wenn ich bei doch bei IFS bleibe, vielleicht könnt ihr mir dann nochmal helfen. Und zwar will ich die Datei per Stream lesen und schreiben (wie Robert gesagt hat)
    Dies erfolgt leider Byte weise, bei ner Großen Datei treib ich die Auslastung der Maschine nach oben. Kann ich die Datei nicht in einem Rutsch schreiben? Hab bei Mr. Google nix gefunden!

    Thx Flo
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

Similar Threads

  1. JOBQ(*JOBD) oder JOBQ(LIB/JOBQ) an SBMJOB übergeben
    By hww in forum NEWSboard Programmierung
    Antworten: 6
    Letzter Beitrag: 12-12-06, 15:27
  2. FTP: Generische Uebertragung von Files
    By roman in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 05-12-06, 14:53
  3. USERASCII spooled files
    By abornmann in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 28-11-06, 06:49
  4. Restore von QHST* files
    By mtu in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 06-06-06, 08:15
  5. encoding file system system von CSV files
    By cc in forum IBM i Hauptforum
    Antworten: 6
    Letzter Beitrag: 13-10-04, 22:52

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •