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]