Dateinamen auslesen

hugo1981

Erfahrenes Mitglied
Hallo @ll,

ich sende in einer jsp Daten aus einem Formular zum Dateiupload.
Code:
 <form action="register_test.jsp" enctype="multipart/form-data" method="POST">

<table>
<tr><td>
<input type="hidden" name="id" value="<%register.getId();%>" ></td></tr>
<tr>
    <td>Image (JPG, PNG, GIF):</td>
    <td><input type="file" name="myFile"    size=40 maxlength=255 >
        <input type="submit" value="Upload"></td>
  </tr>
</table>

</form>

Wie kann ich denn den Dateinamen im neuen geöffneten jsp auslesen?
Code:
String pict = request.getParameter("myFile");

geht irgendwie nicht :(

VIelen Dank für Hilfe im Voraus..

lg,
hugo
 
wo poste ich denn richtig für jsp? :)

danke schonmal..

weisst du vielleicht, ob es nicht möglich ist zwei parser in einem jsp zu verwenden? :)
 
Sorry, hatte nciht bemerkt, dass es verschoben wurde:

im vom Formular geöffneten jsp habe ich bereits ein Parser verwendet..
Allerdings gibt er was anderes aus. Er liest zwar den Dateinamen, ich weiss aber nicht, wie ich diesen im Dokument verwenden kann, oder über diese declaration "exportieren kann..
Code:
<%!
  // Adapt the following string for your upload directory.
  //   Tomcat local     :  sUploadDir = "/upload/";
  //   MyJavaServer.com :  sUploadDir = "/~torstenhorn/upload/";
  final String sUploadDir = "/img/";
  final String sErrMsg
    = "<h2>Fehler: Keine gültige Bilddatei (JPG, PNG, GIF)!</h2>";

  String readAndShowImage( HttpServletRequest request )
  throws FileNotFoundException, IOException
  {
    String sRet = "";
    // Check for valid parameter data:
    if( !request.getMethod().equals( "POST" ) )
      return "";
    MultipartRequest parser = new ServletMultipartRequest(request, 1*1024*1024 );  // < 1 MB
    if( null == parser ||
        null == parser.getFileContents( "myFile" ) )
      return "";
    // Check for valid image file:
    ImageInfo ii = new ImageInfo();
    if( null == ii )
      return "";
    ii.setInput( parser.getFileContents( "myFile" ) ); 
    if( !ii.check() )
      return sErrMsg;
    // Note: Parameters are in the parser and not in request:
    String myComment  = parser.getURLParameter( "id" );
    String sFileName  = parser.getFileSystemName( "myFile" );
    String sImgFormat = ii.getFormatName().toLowerCase();
	
    // Show image data:
    if( null == sImgFormat )
      sImgFormat = "Unbekanntes Format";
    if( sImgFormat.equals( "jpeg" ) )
      sImgFormat = "jpg";
    sRet = "<h2>" + sFileName + ":</h2>"
           + sImgFormat.toUpperCase() + ", "
           + ii.getWidth() + " x " + ii.getHeight() + " pixels, "
           + ii.getBitsPerPixel() + " bpp, "
           + parser.getFileSize( "myFile" ) + " Bytes<br>\n";
    // Check if image format is suitable for inserting into HTML page:
    if( !sImgFormat.equals( "jpg" ) &&
        !sImgFormat.equals( "png" ) &&
        !sImgFormat.equals( "gif" ) )
      return sRet + sErrMsg;
    // Generate valid file name. Different operating systems or 
    // browsers may return the file name with or without path 
    // and the path may contain '/' (Unix) or '\' (Windows):
    if( null == sFileName || 0 >= sFileName.length() )
      sFileName = "MyFile";
    char c = sFileName.charAt( sFileName.length() - 1 );
    if( '/' == c || '\\' == c )
      sFileName = sFileName.substring( 0, sFileName.length() - 1 );
    int i;
    if( 0 <= (i = sFileName.lastIndexOf( '/' )) )
      sFileName = sFileName.substring( i + 1 );
    if( 0 <= (i = sFileName.lastIndexOf( '\\' )) )
      sFileName = sFileName.substring( i + 1 );
    if( !sFileName.toLowerCase().endsWith( "." + sImgFormat ) )
      sFileName += "." + sImgFormat;
    // Different file pathes for HTML page and for storing:
    String sFilePathAndNameHtml = sUploadDir + sFileName;
    String sFilePathAndNameStore
      = getServletContext().getRealPath( sFilePathAndNameHtml );
    // Store file:
    BufferedInputStream  is = null;
    BufferedOutputStream os = null;
    long sum=0;
    try {
      is = new BufferedInputStream( parser.getFileContents( "myFile" ) );
      os = new BufferedOutputStream(
           new FileOutputStream( sFilePathAndNameStore ) );
      byte[] buff = new byte[8192];
      int len;
      while( 0 < (len = is.read( buff )) ) {
        os.write( buff, 0, len );
        sum += len;
      }
    } finally {
      if( is != null )
        is.close();
      if( os != null ) {
        os.flush();
        os.close();
      }
    }
    sRet += "Gespeichert: " + sum + " Bytes<br>\n";
    if( null != myComment && 0 < myComment.length() )
      sRet += "Kommentar: " + myComment + "<br>\n";
    sRet += "<br><img src='" + sFilePathAndNameHtml + "'"
          +         " alt='" + sFileName + "'"
          +         " height=" + ii.getHeight()
          +         " width=" + ii.getWidth() + "><br>\n"
          + "<br>\n sFilePathAndNameHtml  = " + sFilePathAndNameHtml
          + "<br>\n sFilePathAndNameStore = " + sFilePathAndNameStore
          + "<br>\n getRealPath(request.getRequestURI()) = "
          +  getServletConfig().getServletContext().
                 getRealPath(request.getRequestURI());
	
				 
    return sRet;
  }
  %>

deswegen wollte ich noch ein Parser verwenden, aber ich kriege dann eine Fehlermeldun. Was mache ich da falsch?
Code:
<%!
  String readAndShowImage2( HttpServletRequest request )
  throws FileNotFoundException, IOException
  {
    // Check for valid parameter data:
    if( !request.getMethod().equals( "POST" ) )
      return "";
    MultipartRequest parser2 = new ServletMultipartRequest(request, 1*1024*1024 );
    if( null == parser2 ||
        null == parser2.getFileContents( "myFile" ) )
      return "";
    // Check for valid image file:
    ImageInfo ii = new ImageInfo();
    if( null == ii )
      return "";
    ii.setInput( parser2.getFileContents( "myFile" ) ); 
    if( !ii.check() )
      return sErrMsg;
    // Note: Parameters are in the parser and not in request:
    String myComment  = parser2.getURLParameter( "id" );
    String sFileName  = parser2.getFileSystemName( "myFile" );
   
    return sFileName;
  }
  
%>

So führe ich beide Parser im jsp auf:
Code:
<%= readAndShowImage( request ) %> 
<% 
 check.setSession(session.getId());
 if (check.getStatus()) {
	int id = check.getId();
	String pict = readAndShowImage2( request );		 
	register.setPic(id,pict);
	out.println(register.getPicResult()); 
	}
	%>

ist bisschen viel geworden, aber ich hän schon seit 2 tagen dran und komm nciht weiter :(


Vielen Dank für eure Hilfe!!
 
wieder verschoben :)

kann mir keiner sagen, ob ich hier evtl total auf dem Holzweg bin, oder ich vielleicht doch chancen habe, den dateinamen auszulesen :

vielen lieben dank im Voraus..

*Ich komme immernoch nicht drauf-- ist zum verrückt werden*
 

Neue Beiträge

Zurück