| 

.NET C# Java Javascript Exception

PDF-Dateien außerhalb der Grails-Webstruktur hinterlegen

Dies ist das Archiv des ehemaligen Forums zum Thema Groovy, Grails, Griffon und Bean Scripting Framework, welches unter groovy-forum.de existierte. Die neue Adresse des Groovy-Forums ist: http://codekicker.de/fragen/themen/groovy.


PDF-Dateien außerhalb der Grails-Webstruktur hinterlegen

Twistleton - 27.05.2010 18:11
Hallo zusammen,

meine Grails-Anwendung verwaltet PDF-Dateien, bisher hatte ich diese in einem extra Verzeichnis innerhalb der Anwendung selbst abgelegt.

Zwischenzeitlich wurden über 700 PDF-Dateien hochgeladen und das Deployen einer neuen Version wird nunmehr auch immermehr zu einem abenteuerlichen Unternehmen, so dass ich die PDF-Dateien außerhalb der Grails-Webstruktur abspeichern möchte. Mit direkten Pfadangaben habe ich es schon probiert, aber diese werden dann nur an den Pfad der Anwendung selbst angefügt. Ich verwende Suse Linux 11, Grails 1.1 und Tomcat 6.

Da gibt es doch bestimmt eine Möglichkeit, die Anwendung auf ein Verzeichnis außerhalb der Tomcat-Verzeichnisstruktur umzubiegen, oder?

Danke.

Twistleton


Re: PDF-Dateien außerhalb der Grails-Webstruktur hinterlegen

milkyman - 28.05.2010 07:58
Hey,
hast du etwas meine Anwendung kopiert? ;-)))

Ich arbeite aktuell auch an einer mit ca. 700 PDF. Allerdings liegen die schon immer extern im Dateisystem, weil sie unabhängig von einer neuen App Version aktualisiert werden sollen.

System ist ebenfalls Linux (gentoo) mit Tomcat.

Den Pfad ins Dateisystem habe ich in der Config.groovy abgelegt (da für dev, test, prod unterschiedlich).
Bsp: myPath=/tmp/a/b/c

Innerhalb der App wird zum Download dann so zugegriffen (leicht gekürzte Fassung):
   def download = {
    		
    		String fileName = null
    		String myContentType = "application/pdf"
    		
                fileName = .....
				
        		// output file
        		OutputStream out
        		try {

					// prepare header
	                response.setDateHeader("Expires", 0)
	            	response.setHeader("Cache-Control", "no-cache, no-store,must-revalidate,max-age=0")

					// output data
					
					// work around [jira.codehaus.org]
					if (request.method == 'HEAD') { 
						render( text : "", contentType : myContentType ); 
					} else { 
						response.contentType = myContentType
						response.outputStream << new File(myPath, fileName).newInputStream()
						response.outputStream.flush()
					}

					return null
		        } catch (FileNotFoundException fnfe) {
.....
		        } catch (Exception e) {
....
		        }
    		}
    } // download

Bye,
Horst


Re: PDF-Dateien außerhalb der Grails-Webstruktur hinterlegen

Twistleton - 28.05.2010 09:59
Hallo Horst,

die NASA setzt doch immer ein paar Leute unabhängig voneinander an das gleiche zu lösende Problem. ;-)

Danke für den Einblick in Deinen Source-Code.

Gruß
Twistleton


Re: PDF-Dateien außerhalb der Grails-Webstruktur hinterlegen

Twistleton - 28.05.2010 10:15
Hallo,

genau, das Bereitstellen der PDF-Dateien über URL ist das Problem. Auf der Ergebnisseite werden mehrere PDF-Dateien angeboten (falls die Benutzereingaben nicht eindeutig waren) und der Benutzer kann sich dann die passende Datei aussuchen. Bei einer gezielten Suche mit nur einem Treffer gibt die Anwendung via new File das Ergebnis - die PDF-Datei - zurück.

Okay - dann schau ich mal, wie ich das am besten zusammenbastle.

Vielen Dank, Macro, für Deine Hilfe.

Gruß
Twistleton


Re: PDF-Dateien außerhalb der Grails-Webstruktur hinterlegen

mpuhlmann - 28.05.2010 10:55
Hallo,

für die Realisierung würde ich dir dann die Lösung von Horst als Ausgangspunkt empfehlen. Er hat das ganze schön in seinem Quellcode dargestellt.

Für den Fall, dass deine Suche mehrere Treffer liefert, musst du den Link in der Ergebnisseite dann auf die Download-Action verweisen lassen und zusätzlich als Parameter irgend einen Identifikator für das PDF File mitliefern - um den Filename des PDFs zu "berechnen".

Gruss

Marco


Stelle deine Groovy-Frage jetzt!


Diese Seite zeigt den Thread "PDF-Dateien außerhalb der Grails-Webstruktur hinterlegen" der ehemaligen Webseite groovy-forum.de, welche durch einen Serverunfall zerstört wurde. codekicker.de hat viele Konversationen über die beliebte Programmiersprache Groovy und zugehörige Frameworks wie das Grails-Framework retten können.

Hast Du eine Frage zum Thema Groovy, Grails oder allgemein Java? Viele ehemalige groovy-forum.de Mitglieder beantworten dir auf codekicker.de deine Frage! Stelle jetzt eine Frage!

Viele weitere Diskussionen zu Grails und Groovy befinden sich auf der Threadübersicht des alten groovy-forum.de.