用struts上传图片,中文命名的图片无法显示
来源:互联网 发布:香港免备案域名 编辑:程序博客网 时间:2024/06/05 22:59
今天用struts写另一个上传图片的小例子,写完之后进行测试。测试的过程中发现上传非中文命名的图片显示没有问题,但是上传中文命名图片后,发现上传没有问题,但是不显示。下面是我的代码(与上传无关的代码已删除,只作为思路体现):
jsp页面:
<form name="itemForm" method="post" action="item.do" enctype="multipart/form-data" id="itemForm"><input type="hidden" name="itemNo" value="${item.itemNo }"/><div align="center"><table width="95%" border="0" cellpadding="0" cellspacing="0"><tr><td height="29"><div align="right">物料代码: </div></td><td>${item.itemNo }</td></tr><tr><td height="26"><div align="right">物料名称: </div></td><td>${item.itemName }</td></tr><tr><td height="74"><div align="right">图片: </div></td><td><img src="upload/${item.fileName}" width="85" height="49"></td></tr><tr><td width="22%" height="29"><div align="right"><font color="#FF0000">*</font>选择图片: </div></td><td width="78%"><input name=uploadFileName type="file" class="text1" size="40" maxlength="40"></td></tr></table><hr width="97%" align="center" size=0><div align="center"><input name="btn_upload" class="button1" type="submit"id="btn_upload" value="上传"> <input name="btnBack" class="button1" type="button" id="btnBack"value="返回" onClick="<%=basePath %>item.do"></div></div></form>
ActionForm(get和set方法就不列出了)
private String itemName;private FormFile uploadFileName;
Action
public ActionForward execute(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)throws Exception {//将form转换成ItemActionFormItemActionForm iaf=(ItemActionForm)form;//通过工厂实例化物料维护类ItemService itemService=(ItemService)BeanFactory.getInstance().getServiceObject(ItemService.class);//获取上传的文件信息FormFile formFile=iaf.getUploadFileName();//创建目录File directory=new java.io.File(request.getSession().getServletContext().getRealPath("upload"));if (!directory.isDirectory()) {directory.mkdir();}//将文件写入到制定目录FileOutputStream fos=new FileOutputStream(request.getSession().getServletContext().getRealPath("upload")+"\\"+formFile.getFileName());fos.write(formFile.getFileData());fos.close();//更新数据库信息itemService.uploadItemImage(iaf.getItemNo(), formFile.getFileName());return mapping.findForward("upload_success");}
配置文件
<struts-config><form-beans><form-bean name="itemForm" type="com.jianxin.drp.web.forms.ItemActionForm" /></form-beans><action-mappings><action path="/item" name="itemForm" type="com.jianxin.drp.web.actions.ItemAction" scope="request" ><forward name="upload_success" path="/item.do" redirect="true" /></action></action-mappings><message-resources parameter="MessageResources" /></struts-config>
可是上传中文命名的图片后,就是不能显示。这种问题的出现,是源于浏览器默认使用的发送编码与服务器的编码不一致导致的。
我用的是tomcat7.0,在tomcat\conf下的server.xml,在Connector port="8080"那个标签里面加上URIEncoding="UTF-8"就行了,这是因为一般浏览器默认用的发送编码是UTF-8。
在IE下可以这样修改,工具--》Internet选项--》高级,将下图所示选项给勾去掉,点击确定,那么在IE下就可以显示了(不建议使用)。
- 用struts上传图片,中文命名的图片无法显示
- 04-用struts上传图片,中文命名的图片无法显示
- 【Tomcat】无法显示中文命名图片,可以显示英文命名的图片问题
- drupal 中文命名的图片上传显示出错
- ckfinder上传图片含中文,预览无法正常显示问题
- 上传base64图片无法显示
- 中文图片无法正常显示
- 解决中文图片无法显示
- 解决ueditor中文命名图片上传错误
- struts 使用ued无法上传图片
- 关于中文命名图片不能显示
- JSP无法显示上传图片可能原因:图片中包含中文
- struts上传图片的类
- struts:实现图片的上传
- ckfinder 无法上传中文文件名的图片的解决方法。
- JSP使用ckfinder实现中文图片上传后,无法显示,主要是tomcat不支持中文路径
- j2ee中ueditor上传图片无法显示的问题
- Django1.4上传图片无法在页面显示的问题
- HTML-- title ,body 标签
- git生成patch
- 使用SkinMagic美化界面
- MMI SS USSD扫盲贴
- 多核应用编程实战
- 用struts上传图片,中文命名的图片无法显示
- (挑战编程_1_7)Check The Check
- 利用backtrace和backtrace_symbols打印函数的调用关系
- time
- multiple definition of `main' /(text+0x0): first defined here
- 数据库结构算法三:选择排序
- 通过IIS访问webservice不能删除文件,而在本地可以删除
- wxPython利用pytesser模块实现图片文字识别
- (挑战编程_2_1)Jolly Jumpers