码迷,mamicode.com
首页 > Web开发 > 详细

struts—文件的上传和下载

时间:2016-08-23 23:35:19      阅读:188      评论:0      收藏:0      [点我收藏+]

标签:

设计了一个小的案例:上传图片到服务器,上传成功后显示图片列表,然后点击下载上传到服务器的图片。

文件上传:

注意表单的配置属性:

<form enctype="multipart/Form-data" action="/strutsFilleupAndDown/register.do" method="post">

         名字:<input type="text" name="name"><br>

         头像:<input type="file" name="myphoto"><br>

        <input type="submit" value="注册用户">

   </form>

技术分享

问题:1.中文名字的文件?  2.存在文件覆盖? 

*1.覆盖文件的问题?

思路:

①为了防止新取得的文件名称重复,先看有没有该文件,如果有了,则给以后上传的文件去一个名字,为了防止文件名称重复(年+++时分秒)

②编写一个工具类,可以生成一个不重复的文件名,然后再保存

public class Mytools {

public static String getNewFileName(String fileName){

int beginIndex=fileName.lastIndexOf(".");

String newFilename=UUID.randomUUID().toString()+fileName.substring(beginIndex,fileName.length());

return newFilename;

  }

}

action中,调用方法即可。

 

*2.如果文件名是中文怎么办? 

思路:

①上传的时候使用过滤器转成utf-8编码,使得服务器能够识别文件,方便处理。

②在数据库中设计一个中间转换的一个表,存放原文件名和通过处理的文件名。

③下载的时候由于<img>请求是get请求,而过滤器对get请求时不生效的,文件名还是乱码,服务器无法识别文件,导致无法读取文件。在action中进行处理。

java.net.URLEncoder.encode(user.getPhoto2(),"utf-8")

Users

Mysqlnot nullunique在一起自动转为主键

Create table users_2( 

Username varchar(64) unique not null,

Photo varchar(128) not null,

Photo2 varchar(128) not null

)

 。。。。。

struts—文件的上传和下载

标签:

原文地址:http://www.cnblogs.com/xiangkejin/p/5801032.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!