java面板(SimplePanel)中仅显示图像的前1/3(大约),
我试图在GWT面板中显示~80K jpeg图像。(fwiw-从数据库表检索图像)
由于某些原因,当我尝试显示时,面板(SimplePanel)中仅显示顶部的1/3(大约)。分辨率较低的图像整体显示--此问题似乎与面板高度/宽度设置无关
这是不是因为我听说过关于IE浏览器的32k限制
如果是这样的话,是否有一种替代技术的完整示例可用于显示图像(在SimplePanel中)——即,使整个图像显示在IE中
- Java 1.6
- GWT 2.2
- IE 8
(涉及的代码片段)
-
-
-
//prepare image url on server (for use by client)
String base64Url = "data:image/jpeg;base64," + base64.encodeToString(imageByteArray);
-
-
-
//client retrieving image url (from server)...
AsyncCallback<String> asyncCallback = new AsyncCallback<String>()
{
@Override
public void onFailure(Throwable caught)
{
Window.alert("DetailView/setRowData/asyncCallBack/onFailure - " + caught.getMessage());
}
@Override
public void onSuccess(String base64Url)
{
Window.alert("DetailView/setRowData/asyncCallBack/onSuccess - base64Url:" + String.valueOf(base64Url));
imagePanel.clear();
imagePanel.add(new Image(base64Url));
}
};
searchValueMap.put("doc_id",doc_id.trim().toUpperCase());
service.getBase64ImageUrl(base64Url, asyncCallback);
-
-
-
# 1 楼答案
RFC 2397提示,URL长度是限制因素,但不指定任何特定长度:
http://www.ietf.org/rfc/rfc2397.txt
我在这方面的经验仅限于GWT ResourceBundle代码。在那里,数据url仅限于几种浏览器类型,任何大于32K的图像都不符合通过数据url发送的条件:
http://code.google.com/p/google-web-toolkit/source/browse/trunk/user/src/com/google/gwt/resources/rebind/context/InlineResourceContext.java