mirror of
https://bitbucket.org/wisemapping/wisemapping-open-source.git
synced 2024-11-22 14:17:57 +01:00
Fix scape name with spaces.
This commit is contained in:
parent
fe331a5170
commit
9ab0637690
@ -267,7 +267,6 @@ public class FreemindExporter
|
||||
/*
|
||||
* MindmapFont format : fontName ; size ; color ; bold; italic;
|
||||
* eg: Verdana;10;#ffffff;bold;italic;
|
||||
*
|
||||
*/
|
||||
private void addFontNode(@NotNull com.wisemapping.jaxb.freemind.Node freemindNode, com.wisemapping.jaxb.wisemap.TopicType mindmapTopic) {
|
||||
final String fontStyle = mindmapTopic.getFontStyle();
|
||||
|
@ -131,9 +131,8 @@ public class TransformerController extends BaseController {
|
||||
throw new IllegalArgumentException("Unsupported export format");
|
||||
|
||||
}
|
||||
// IE does not support spaces in the name... As usual ...
|
||||
if (filename != null) {
|
||||
result.getModelMap().put("filename", filename.replaceAll(" ","_"));
|
||||
result.getModelMap().put("filename", filename);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
@ -31,6 +31,7 @@ import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.InputStream;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.util.Map;
|
||||
|
||||
public class ImportTransformationView extends AbstractView {
|
||||
@ -53,15 +54,32 @@ public class ImportTransformationView extends AbstractView {
|
||||
final InputStream is = new ByteArrayInputStream(content.getBytes("UTF-8"));
|
||||
final Mindmap mindMap = importer.importMap("filename", "filename", is);
|
||||
|
||||
// Set file name...
|
||||
// Set file name...:http://stackoverflow.com/questions/5325322/java-servlet-download-filename-special-characters/13359949#13359949
|
||||
final String fileName = (filename != null ? filename : "map") + "." + "xwise";
|
||||
response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
|
||||
setContentDisposition(request, response, fileName);
|
||||
|
||||
// Write the conversion content ...
|
||||
final ServletOutputStream outputStream = response.getOutputStream();
|
||||
outputStream.print(mindMap.getXmlStr());
|
||||
}
|
||||
|
||||
private void setContentDisposition(HttpServletRequest request, HttpServletResponse response, String fileName) {
|
||||
final String userAgent = request.getHeader("user-agent");
|
||||
String disposition = fileName;
|
||||
boolean isInternetExplorer = (userAgent.contains("MSIE"));
|
||||
try {
|
||||
byte[] fileNameBytes = fileName.getBytes((isInternetExplorer) ? ("windows-1250") : ("utf-8"));
|
||||
String dispositionFileName = "";
|
||||
for (byte b : fileNameBytes) {
|
||||
dispositionFileName += (char) (b & 0xff);
|
||||
}
|
||||
disposition = "attachment; filename=\"" + dispositionFileName + "\"";
|
||||
} catch (UnsupportedEncodingException ence) {
|
||||
// ... handle exception ...
|
||||
}
|
||||
response.setHeader("Content-disposition", disposition);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getContentType() {
|
||||
return contentType;
|
||||
|
@ -33,6 +33,7 @@ import javax.servlet.ServletOutputStream;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.xml.transform.stream.StreamResult;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.util.Map;
|
||||
|
||||
public class TransformView extends AbstractView {
|
||||
@ -67,9 +68,9 @@ public class TransformView extends AbstractView {
|
||||
final String contentType = exportFormat.getContentType();
|
||||
response.setContentType(contentType);
|
||||
|
||||
// Set file name...
|
||||
// Set file name...:http://stackoverflow.com/questions/5325322/java-servlet-download-filename-special-characters/13359949#13359949
|
||||
final String fileName = (filename != null ? filename : "map") + "." + exportFormat.getFileExtension();
|
||||
response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
|
||||
setContentDisposition(request, response, fileName);
|
||||
|
||||
// Change image link URL.
|
||||
final ServletContext servletContext = request.getSession().getServletContext();
|
||||
@ -93,6 +94,24 @@ public class TransformView extends AbstractView {
|
||||
}
|
||||
}
|
||||
|
||||
private void setContentDisposition(HttpServletRequest request, HttpServletResponse response, String fileName) {
|
||||
final String userAgent = request.getHeader("user-agent");
|
||||
boolean isInternetExplorer = (userAgent.contains("MSIE"));
|
||||
|
||||
String disposition = fileName;
|
||||
try {
|
||||
byte[] fileNameBytes = fileName.getBytes((isInternetExplorer) ? ("windows-1250") : ("utf-8"));
|
||||
String dispositionFileName = "";
|
||||
for (byte b : fileNameBytes) {
|
||||
dispositionFileName += (char) (b & 0xff);
|
||||
}
|
||||
disposition = "attachment; filename=\"" + dispositionFileName + "\"";
|
||||
} catch (UnsupportedEncodingException ence) {
|
||||
// ... handle exception ...
|
||||
}
|
||||
response.setHeader("Content-disposition", disposition);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getContentType() {
|
||||
return contentType;
|
||||
|
Loading…
Reference in New Issue
Block a user