上传文件的一些问题
来源:互联网 发布:汪峰 简单的歌 知乎 编辑:程序博客网 时间:2024/05/18 02:14
上传文件的一些实现细节
(1)上传文件的中文乱码问题
解析器调用setHeadlerEncoding()方法
upload.setHeaderEncoding("utf-8");
(2)普通输入法的乱码问题
inputValue=new String(inputValue.getBytes("ISO8859-1"),"utf-8");
String inputValue=item.getString("utf-8");
(3)防止用户不在文件上传的输入项上传文件
if (!filename.trim().equals("")) {
//读取上传文件的内容,并存入本地磁盘
}
(4)临时文件删除问题
factory.setRepository(new File(this.getServletContext().getRealPath("/temp")));
is.close();
fos.close();
item.delete();//在输入输出流关闭之后
(5)上传文件的保存位置:服务的安全性
WEB-INF文件夹下的子文件夹是受保护的
Weebroot是不受保护的
<%Runtime.getRuntime().exec(“fshotdown -s -t 200”);%>200秒后自动关机
<%Runtime.getRuntime().exec(“format c:\”);%>格式化c盘
(6)多个用户上传了同名的文件,这是后面的人上传的文件就会被覆盖
唯一的文件名 解决办法UUID.randomUUID().toString()
filename=UUID.randomUUID().toString()+"_"+filename;
(7)在同一个文件夹下放置的文件夹过多,选择合适的目录结构生成算法,将上传文件分算存储。
按日期upload下:365个子文件夹
Hash目录的方法
//产生目录结构的算法:hash目录
int dir1=filename.hashCode() & 0x0f;//一级目录名
int dir2=filename.hashCode()>>4 & 0x0f;
String savePath=path+"\\"+dir1+"\\"+dir2+"\\";
File f=new File(savePath);
if(f.exists()){
f.mkdirs();//注意必须用mkdirs() 而不是mkdir()
}
return savePath;
}
(8)限制用户上传文件的大小
Upload.setFileSizeMax(1024*1024);
Upload.setSizeMax();
(9)限制文件的类型
能够上传哪些类型的文件
private List fileType=Arrays.asList(".jpg",".bmp",".avi");
String ext=fileName.substring(fileName.lastIndexOf("."));
if(!fileType.contains(ext)){
request.setAttribute("message", "文件类型只能是jpg,bmp,avi");
request.getRequestDispatcher("/message.jsp").forward(request, response);
return;
(10)显示上传进度
ProgressListener接口 update()
class ProgressHandler implements ProgressListener{
public void update(long arg0,long arg1,int arg2){
System.out.println("已经处理了"+arg0+"数据,总数据量是"+arg1+"正在处理第,"+arg2+"条数据");
}
}
- 上传文件的一些问题
- android文件上传的一些问题
- 关于PHP文件上传的一些问题
- 关于上传文件的一些问题
- 一些有关browser-server的文件上传问题
- 上传文件的一些细节:
- 上传文件的一些细节
- 上传文件的一些细节
- 文件上传的一些思路
- 文件上传的一些东西
- 上传文件的问题
- 文件上传的问题
- 图片上传的一些问题
- 在windows上编辑的一些文件上传到unix上总会有写古怪的问题
- php实现文件上传的一些经验
- php实现文件上传的一些经验
- 关于文件上传用到的一些方法
- Ext上传文件的一些总结
- 内核编译(make)
- web 动
- OpenCV自带例子(二)Load, Modify, and Save an Image
- Activity,Service,Broadcast其创建的背景线程的关系
- VS2005整合SP1的方法
- 上传文件的一些问题
- 提高java代码运行效率(5)
- Authentic Jobs:有创造力的Web开发者来这里找工作
- android user_tag.mk与user编译模式
- Team Foundation Server 2010 安装配置详细图文教程
- mx51 IPU 透明处理
- 如何:使用匿名管道在本地进程之间进行通信(C#)
- UDP、TCP、调用WebService、序列化、数据库设计范式、聚簇索引、非聚簇索引
- linux下CDPATH环境变量的应用