Hello,

after uploading a file, getFileName() returns me always a wrong filename, if the filename contains one of the german umlaute (like ü, ä or ö). The filename looks like: "Angebot_Tipps fᅵr Kids.doc" (i display it BEFORE i save the name in the database). This error appears _only_ in the input-file tag, if i enter some characters in a normal input-field, everything goes fine.

Is this a known error? I found nothing in the web. Is here anyone running Struts / upload running succesful with german filenames?

TIA, Bart

Versions: Tomcat 5, Struts 1.2.4, java version "1.5.0_04" on Linux

Code:

package de.om.crm.struts;

..a lot of imports ...

import org.apache.struts.upload.FormFile;

/**
* @author bart
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public class MarketingMailingAction extends Action {

  /* (non-Javadoc)
  * @see
  */
  private String tmpUploadFile = null;

  public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws Exception {

    // load form
    MarketingMailingForm mmf = (MarketingMailingForm) form;
    HttpSession session = request.getSession(true);

ArrayList uploadFiles = (ArrayList) session.getAttribute("uploadFiles");
    if (uploadFiles == null)
      uploadFiles = new ArrayList();
    FormFile file = mmf.getMarketingFile();

    if (mmf.getAction().equals(mmf.ACTION_SENDEN)) {
      // .. sends mail

    } else if (mmf.getAction().equals(mmf.ACTION_UPLOAD)) {

      // first we clean up the temp directory
      cleanUpTempDir();

      if (file != null && file.getFileSize() > 0) {
        try {
          // save content
          // save everything in session
          HashMap h = new HashMap();
          h.put("contentType", file.getContentType());
          h.put("fileSize", new Integer(file.getFileSize()));
          h.put("fileName", file.getFileName());
h.put("tempFileName", getTmpFileFromUpload(file.getInputStream()));

          uploadFiles.add(h);

          // also add the file to the form list
mmf.getFilesInSession().put(new Integer(uploadFiles.indexOf(h)).toString() , h.get("fileName"));

        } catch (Exception e) {
          e.printStackTrace();
        }

        // ok, everything goes fine, put again the files into session

      }

    }



    return mapping.findForward("marketingMailing");
  }

  private void cleanUpTempDir() {
// System.out.println("cleanup " + System.getProperty("java.io.tmpdir"));

  }

  private String getTmpFileFromUpload(InputStream is) {
    if (this.tmpUploadFile == null) {
      // output
      try {
        java.io.File tmp = java.io.File.createTempFile("mma_", ".tmp");
BufferedOutputStream os = new BufferedOutputStream(new FileOutputStream(tmp.getAbsoluteFile()));

        // input
        InputStream in = is;
        int b;
        while ((b = in.read()) != -1) {
          os.write(b);
        }
        in.close();
        os.close();

        return tmp.getAbsolutePath();
      } catch (Exception e) {
        e.printStackTrace();
        return null;
      }
    } else {
      return this.tmpUploadFile;
    }
  }
}


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to