<input type="file"> Problem

Status
Nicht offen für weitere Antworten.

DayXtry

Mitglied
Hi,
hab mal wieder ein Problem. Bei neuen Browsern steht ja nach dem Absenden eines Formulars bei <input type="file"> im value nur der Dateiname drin, aber nicht der Pfad. Hab ziehmlich viel gesucht, häng aber immer noch an dem Problem fest.

Also ich will nicht direkt eine Datei uploaden, ich brauch nur den Pfad zu der Datei.

Hab bis jetzt folgenden Code:
Code:
if(FileUpload.isMultiPartContent(request)) {
            try {
                out.println("<h3>Inhalt des geparsten:</h3>");
                
                //ENCTYPE='multipart/form-data' Daten auslesen
                FileItemFactory factory = new DiskFileItemFactory();
                ServletFileUpload upl = new ServletFileUpload(factory);
                
                java.util.List items = upl.parseRequest(request);
            } catch (Exception e) {
                e.printStackTrace();
            }
}

mein Formular:
Code:
    <form name="form1" action="test.jsp" method="post">
        <input type="file" name="bild">
        <input type="submit">
    </form>

Das erste Problem ist schon mal, dass er mir bei
Code:
FileUpload.isMultiPartContent(request)
sagt, dass er die Methode isMultiPartContent() nicht kennt. Aber hab alle libs eingebunden (commons-io-1.2-src-ide.zip, commons-io-1.2.jar, commons-fileupload-1.1.1.jar).
In der Variable factory werden dann alle Daten des Formulars gespeichert. Hab ich das richtig verstanden? Wenn ja, wie kann ich dann auf den Wert von dem <input type="file" name="bild"> zugreifen?

Würde mich wirklich sehr über Antworten freuen.

Mit freundlichen Grüßen
DayXtry
 

MatthiasKnorr

Aktives Mitglied
Glaub nicht, dass die Pfadinformationen mit übertragen werden, da diese total uninteressant sind. Auf dem Server wird nämlich nur die Datei und nicht der Pfad gespeichert. Ich glaub aber Opera schickt den Pfad mit.

Du kannst aber über Javascript den absoluten Pfad der Datei vor dem Submit abfangen und als Parameter übertragen.

Code:
<html>
	<form name="myform" method="post" action="test.html" onsubmit="javascript:myform.path.value=myform.file.value;">
		<input name="path" type="hidden">

		<input name="file" type="file">

		<input type="submit">
	</form>
</html>

Grüße,
Matthias
 

SebiB90

Top Contributor
@MatthiasKnorr
wie du selbst gesagt hast, wird die datei übertragen. wieso aber holst du dir dann über umwegen den pfad?
das script läuft solange client und server der gleiche pc ist, aber dann auch nicht mehr.

@DayXtry
versuch nochmal deine alte version, aber du musst im html code auch angegeben das es ein multipartcontent gibt.
das machst du indem du in den form tag enctype="multipart/form-data" rein schreibst. also so:
Code:
<form name="form1" action="test.jsp" method="post" enctype="multipart/form-data" > 
        <input type="file" name="bild"> 
        <input type="submit"> 
    </form>
 

DayXtry

Mitglied
@SebiB90
Hi,
das mit enctype="multipart/form-data" hab ich oben ausversehen weggelassen. Also wenns mit im form steht, kennt er die Methode isMultiPartContent() immer noch nicht. Aber danke schon mal für deine Hilfe!

Gruß DayXtry
 

DayXtry

Mitglied
Sry erst mal für den drei fach post,....

Also ich habs jetzt so weit:

Code:
    <form name="form1" action="test.jsp" method="post" enctype="multipart/form-data">
        <input type="file" name="bild">
        <input type="submit">
    </form>
    
<%
                    try {
                        out.println("<h3>Inhalt des geparsten:</h3>");                        
                        
                        DiskFileUpload upload = new DiskFileUpload();
                        
                        List items = upload.parseRequest(request);
                        
                        Iterator itr = items.iterator();
                        
                        while(itr.hasNext()) {
                            FileItem item = (FileItem) itr.next();
                            
                            DefaultFileItem dfi = (DefaultFileItem) item;
                            File storeLocation = dfi.getStoreLocation();
                            
                            if(item.isFormField()) {
                                String fieldName = item.getFieldName();
                            }
                            else {
                                File fullFile = new File(item.getName());
                                File savedFile = new File(getServletContext().getRealPath("/bilder"),
                                        fullFile.getName());
                                item.write(savedFile);
                            }
                        }
                        
                        
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
%>

Nur,...also der lädt das mit dem Skript auf den Server hoch,...was ich ja eig. nicht will,...ich will nur den lokalen Namen + Pfad!!! der hochzuladenden Datei...aber mit dem Code kann i mir nur den Pfad + Namen der Datei auslesen lassen, die nachher aufm Server liegt. Ok i kann mir mit dem Code au no die .temp anzeigen lassen, aber das bringt mir alles reichlich wenig.

Gruß DayXtry
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Wildlfy .war - File in produktiven System deployen (Upgrade der Software) Allgemeines EE 5
E Audio/Video File Streamen Allgemeines EE 1
N WebService WAR-File auf Tomcat-Server Allgemeines EE 1
OnDemand Deploy war File wie aufrufen? Allgemeines EE 10
OnDemand JSF - java File Verständnisfrage Allgemeines EE 5
OnDemand War File erstellen Allgemeines EE 1
T Probleme mit File renameTo bzw. File delete @@ Allgemeines EE 3
W properties File in WEB-INF Allgemeines EE 5
H fehler beim deployen von ear file Allgemeines EE 2
P Dynamic Web Project -> file Allgemeines EE 23
E Properties-File in Jboss-Conf Verzeichnis ansprechen Allgemeines EE 2
A File Donwlad über jsp Allgemeines EE 6
G File-Upload Allgemeines EE 3
V File Permissions Allgemeines EE 3
J Auslesen von <input type="file"> Allgemeines EE 2
M Servlets | work - Klassen nicht im WAR File Allgemeines EE 5
P jar-File aus war-File beim Deploy automatisch entpacken Allgemeines EE 2
H File Upload per Formular - prinzipielle Vorgehensweise? Allgemeines EE 2
M war file export Allgemeines EE 2
B FileInputStream(sPath); file wird nicht gefunden Allgemeines EE 5
D JSP include file Direktive Allgemeines EE 2
U File upload, File download und verzeichnis Struktur Allgemeines EE 2
M Struts File Upload problem Allgemeines EE 6
G properties file im J2EE Server - wo wird genau gesucht? Allgemeines EE 6
H Die JBossMQ im JBoss auf File-Persistence stellen? Allgemeines EE 3
M JSP und File Allgemeines EE 5
S Daten in ein Excel file exportieren Allgemeines EE 3
G JSP: kann nicht in File schreiben Allgemeines EE 2
K JPG file in Java Klasse speichern Allgemeines EE 13
B Nochmal Servlet und File, diesmal download. Allgemeines EE 3
D welcome-file *.do Allgemeines EE 4
T Servlet-Mapping und Welcome-File-List unter Websphere? Allgemeines EE 2
P Probleme mit File renameTo bzw. File delete Allgemeines EE 3
A File Download mit Umlauten in Tomcat/Struts/Suse8 Allgemeines EE 1

Ähnliche Java Themen

Neue Themen


Oben