struts2 fileupload乱码的问题

爱吃青菜的猪 2008-07-03 11:18:25
jsp页面编码为utf-8,上传代码如下:
<s:form action="upload" theme="simple" enctype="multipart/form-data" method="post">

<table align="center" width="50%" border="1">

<tr>
<td>username</td>
<td>
<s:textfield name="username"></s:textfield>
</td>
</tr>

<tr>
<td>password</td>
<td>
<s:password name="password"></s:password>
</td>
</tr>

<tr>
<td>file</td>
<td id="more">
<s:file name="file"></s:file><input type="button" value="Add More..." onclick="addMore()">
</td>
</tr>

<tr>

<td>
<s:submit value="submit"></s:submit>
</td>
<td>
<s:reset value="reset"></s:reset>
</td>
</tr>

</table>


</s:form>


struts.xml配置文件如下:
<action name="upload" class="com.test.action.UploadAction">
<result name="success">/uploadResult.jsp</result>
<result name="input">/upload.jsp</result>
</action>

action文件execute代码如下:
for(int i=0; i < file.size() ; i++){
InputStream is = new FileInputStream(file.get(i));

String root = ServletActionContext.getRequest().getRealPath("/upload");

System.out.println(root);

File destFile = new File(root,this.getFileFileName().get(i));


OutputStream os = new FileOutputStream(destFile);

byte[] buffer = new byte[400];

int length = 0;

while((length = is.read()) > 0){
os.write(buffer,0,length);
}

is.close();

os.close();

}




return SUCCESS;
}
上传后的文件为乱码,请高手指点一下?


...全文
100 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
老紫竹 2008-07-04
  • 打赏
  • 举报
回复
还有,返回值不是>0 而是应该为 -1 代表结束
while((length = is.read(buffer)) !=-1){ 
os.write(buffer,0,length);
}
老紫竹 2008-07-04
  • 打赏
  • 举报
回复
while((length = is.read()) > 0){ 
os.write(buffer,0,length);
}


这段程序我看不懂哦!哈哈哈!

应该是这个样子吧!
while((length = is.read(buffer)) > 0){ 
os.write(buffer,0,length);
}



67,538

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧