ERLEDIGT
NEIN
NEIN
ANTWORTEN
4
4
ZUGRIFFE
575
575
EMPFEHLEN
-
Hallo,
ich habe ein Servlet geschrieben welches den Fileupload von Videos bewerkstelligen soll. Nach großem Probieren funktioniert es jetzt auch, jedoch nur wenn ich direkt ins bin-Verzeichnis des Tomcat uploade.
So sieht es momentan aus:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
public void doPost(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException { res.setContentType( "text/html" ); PrintWriter pw = res.getWriter(); HttpSession session = req.getSession(); String id = session.getId(); DiskFileItemFactory factory = new DiskFileItemFactory(); ServletFileUpload upload = new ServletFileUpload(factory); if (upload.isMultipartContent(req)){ try { List files = upload.parseRequest(req); byte[] buffer = new byte[8192]; for (Iterator iter = files.iterator(); iter.hasNext();) { FileItem element = (FileItem) iter.next(); if (!element.isFormField()) { String fileType = element.getName(); fileType = fileType.substring(fileType.lastIndexOf('.')); File file = new File(id+fileType); video = new String( file.getAbsolutePath()); InputStream is = element.getInputStream(); FileOutputStream fos = new FileOutputStream(file); int len = 0; while ((len = is.read(buffer)) > 0) { fos.write(buffer, 0, len); } fos.flush(); fos.close(); is.close();
Sobald ich allerdings einen Pfad hinzufügen will bekomme ich einen IO Fehler.
Ich habe alle möglichen Versionen ausprobiert zB
vonüberCode :1
File file = new File("\\uploaded\\",id+fileType);bis hin zuCode :1
File file = new File("http:\\localhost:8400\\uploaded\\",id + fileType);Code :1
File file = new File("http:\\{IP}:8400\\uploaded\\",id + fileType);
Wie genau muss es denn nun lauten damit er in ein anderes Verzeichnis als das bin schreibt?
Danke euch!
-
Hallo jayjayxh,
du musst für den Upload in ein bestimmtes Verzeichnis einen absoluten Pfad übergeben.
Also z.B.
Code :1
File file = new File("D:/projekte/projekt/upload",id + fileType);
Gruß
Torben
-
Vielen Dank für die Anwort. Aber ich glaube ich habe keine Berechtigung auf D: oder C: zu speichern. Soll ich dann etwa den absuluten Pfad zu meinem BlazeDS bzw Tomcat Ordner angeben? Wäre dann etwas wie C://Dokumente und Einstellungen/root/desktop/blazeds/tomcat/
Gibt es keine möglichkeit auf localhost : port zu speichern? Denn den absoluten Pfad kenne ich doch "eigentlich" gar nicht wenn der server nicht bei mir steht. oder?
-
Mittels getServletContext().getRealPath(String dir) bekommst Du den absoluten Pfad eines Verzeichnises innerhalb des Webapp-Ordners - das sollte Dir helfen.
-
Ja, genau wie metdacat sagte.
Ich arbeite in einem solchen Fall auch mit getServletContext().getRealPath(String dir).
Man muss sehen ob das für deinen Fall sinnvoll ist.
Ich habe z.B. mit WAR Files gearbeitet und da unser Server einmal am Tag rebootet und die WAR Files danach neu entpacke ist ein Upload in das Webbapp Verzeichnis, zumindest für Dateien die dauerhaft auf dem Server liegen sollen, nicht sehr sinnvoll.
Ich habe in einem solchen Fall mit Variablen im Tomcat definiert, die auf mein Projekte Verzeichnis verweist, in dem sich dann das webapps Verzeichnis befindet.
Gruß
Torben
Ähnliche Themen
-
Tomcat : Was bringt die "APR based Apache Tomcat Native library"?
Von Sentoo im Forum Hosting & WebserverAntworten: 0Letzter Beitrag: 15.10.09, 08:54 -
Wohin mit den Sql Befehlen
Von Reverent im Forum .NET DatenverwaltungAntworten: 8Letzter Beitrag: 21.08.08, 21:25 -
Wohin mit dem move_uploaded_file?
Von Smartsoul im Forum PHPAntworten: 9Letzter Beitrag: 15.11.05, 22:31 -
Wohin mit der Datenbank?
Von Dario Linsky im Forum .NET ArchivAntworten: 1Letzter Beitrag: 05.10.04, 08:36





Zitieren
Login





