当前位置: 首页 > news >正文

在您的网站首页添加标签网站seo外包公司有哪些

在您的网站首页添加标签,网站seo外包公司有哪些,面包店网站功能建设与栏目划分,培训页面设计师2014年9月8日 16:27:56 一、文件上传的原理 1、文件上传的 前提: a、 form表单的method必须是post b、 form表单的enctype必须是multipart/form-data(决定了POST请求方式,请求正文的数据类型) 注意:当表单的enctype是m…


2014年9月8日 16:27:56


一、文件上传的原理
1、文件上传的 前提
a、 form表单的method必须是post
b、 form表单的enctype必须是multipart/form-data(决定了POST请求方式,请求正文的数据类型)
注意:当表单的enctype是multipart/form-data,传统的获取请求参数的方法失效。
请求正文:(MIME协议进行描述的,正文是多部分组成的)
-----------------------------7dd32c39803b2
Content-Disposition: form-data; name="username"

wzhting
-----------------------------7dd32c39803b2
Content-Disposition: form-data; name="f1"; filename="C:\Documents and Settings\wzhting\妗岄潰\a.txt"
Content-Type: text/plain

aaaaaaaaaaaaaaaaaa
-----------------------------7dd32c39803b2
Content-Disposition: form-data; name="f2"; filename="C:\Documents and Settings\wzhting\妗岄潰\b.txt"
Content-Type: text/plain

bbbbbbbbbbbbbbbbbbb
-----------------------------7dd32c39803b2--

c、 form中提供input的type是file类型的文件上传域


二、利用第三方组件实现文件上传
1、 commons-fileupload组件:
jar:commons-fileupload.jar 
                               commons-io.jar

2、核心类或接口
DiskFileItemFactory:设置环境
public void setSizeThreshold(int?sizeThreshold) :设置缓冲区大小。默认是10Kb。
当上传的文件超出了缓冲区大小,fileupload组件将使用临时文件缓存上传文件
public void setRepository(java.io.File repository):设置临时文件的存放目录。默认是系统的临时文件存放目录。
ServletFileUpload:核心上传类(主要作用:解析请求的正文内容)
boolean isMultipartContent(HttpServletRequest?request):判断用户的表单的enctype是否是multipart/form-data类型的。
List parseRequest(HttpServletRequest request):解析请求正文中的内容
setFileSizeMax(4*1024*1024);//设置单个上传文件的大小
upload.setSizeMax(6*1024*1024);//设置总文件大小
FileItem:代表表单中的一个输入域。
boolean isFormField():是否是普通字段
String getFieldName:获取普通字段的字段名
String getString():获取普通字段的值
InputStream getInputStream():获取上传字段的输入流
String getName():获取上传的文件名

三、文件上传中要注意的9个问题
1、如何保证服务器的安全
把保存上传文件的目录放到WEB-INF目录中。
2、中文乱码问题
2.1普通字段的中文请求参数
String value = FileItem.getString("UTF-8");
2.2上传的文件名是中文
解决办法:request.setCharacterEncoding("UTF-8");
3、重名文件被覆盖的问题
System.currentMillions()+"_"+a.txt(乐观)
UUID+"_"+a.txt:保证文件名唯一
4、分目录存储上传的文件
方式一:当前日期建立一个文件夹,当前上传的文件都放到此文件夹中。
方式二:利用文件名的hash码打散目录来存储。
int hashCode = fileName.hashCode();
1001 1010 1101 0010 1101 1100 1101 1010
hashCode&0xf;   0000 0000 0000 0000 0000 0000 0000 1111 &
---------------------------------------------
0000 0000 0000 0000 0000 0000 0000 1010   取hashCode的后4位
0000~1111:整数0~15共16个
1001 1010 1101 0010 1101 1100 1101 1010
(hashCode&0xf0) 0000 0000 0000 0000 0000 0000 1111 0000  &
--------------------------------------------
0000 0000 0000 0000 0000 0000 1101 0000  >>4
--------------------------------------------
0000 0000 0000 0000 0000 0000 0000 1101
0000~1111:整数0~15共16个
5、限制用户上传的文件类型
通过判断文件的扩展名来限制是不可取的。
通过判断其Mime类型才靠谱。FileItem.getContentType();
6、如何限制用户上传文件的大小
6.1单个文件大小限制。超出了大小友好提示
抓异常进行提示:org.apache.commons.fileupload.FileUploadBase.FileSizeLimitExceededException
6.2总文件大小限制。超出了大小友好提示
抓异常进行提示:org.apache.commons.fileupload.FileUploadBase.SizeLimitExceededException
7、临时文件的问题
commons-fileupload组件不会删除超出缓存的临时文件。
FileItem.delete()方法删除临时文件。但一定要在关闭流之后。
8、多个文件上传时,没有上传内容的问题
if(fileName==null||"".equals(fileName.trim())){
continue;
}
9、上传进度检测
给ServletFileUpload注册一个进度监听器即可,把上传进度传递给页面去显示
//pBytesRead:当前以读取到的字节数
//pContentLength:文件的长度
//pItems:第几项
public void update(long pBytesRead, long pContentLength,
int pItems) {
System.out.println("已读取:"+pBytesRead+",文件大小:"+pContentLength+",第几项:"+pItems);

2014年9月8日 16:27:56


一、文件上传的原理
1、文件上传的 前提
a、 form表单的method必须是post
b、 form表单的enctype必须是multipart/form-data(决定了POST请求方式,请求正文的数据类型)
注意:当表单的enctype是multipart/form-data,传统的获取请求参数的方法失效。
请求正文:(MIME协议进行描述的,正文是多部分组成的)
-----------------------------7dd32c39803b2
Content-Disposition: form-data; name="username"

wzhting
-----------------------------7dd32c39803b2
Content-Disposition: form-data; name="f1"; filename="C:\Documents and Settings\wzhting\妗岄潰\a.txt"
Content-Type: text/plain

aaaaaaaaaaaaaaaaaa
-----------------------------7dd32c39803b2
Content-Disposition: form-data; name="f2"; filename="C:\Documents and Settings\wzhting\妗岄潰\b.txt"
Content-Type: text/plain

bbbbbbbbbbbbbbbbbbb
-----------------------------7dd32c39803b2--

c、 form中提供input的type是file类型的文件上传域


二、利用第三方组件实现文件上传
1、 commons-fileupload组件:
jar:commons-fileupload.jar 
                               commons-io.jar

2、核心类或接口
DiskFileItemFactory:设置环境
public void setSizeThreshold(int?sizeThreshold) :设置缓冲区大小。默认是10Kb。
当上传的文件超出了缓冲区大小,fileupload组件将使用临时文件缓存上传文件
public void setRepository(java.io.File repository):设置临时文件的存放目录。默认是系统的临时文件存放目录。
ServletFileUpload:核心上传类(主要作用:解析请求的正文内容)
boolean isMultipartContent(HttpServletRequest?request):判断用户的表单的enctype是否是multipart/form-data类型的。
List parseRequest(HttpServletRequest request):解析请求正文中的内容
setFileSizeMax(4*1024*1024);//设置单个上传文件的大小
upload.setSizeMax(6*1024*1024);//设置总文件大小
FileItem:代表表单中的一个输入域。
boolean isFormField():是否是普通字段
String getFieldName:获取普通字段的字段名
String getString():获取普通字段的值
InputStream getInputStream():获取上传字段的输入流
String getName():获取上传的文件名

三、文件上传中要注意的9个问题
1、如何保证服务器的安全
把保存上传文件的目录放到WEB-INF目录中。
2、中文乱码问题
2.1普通字段的中文请求参数
String value = FileItem.getString("UTF-8");
2.2上传的文件名是中文
解决办法:request.setCharacterEncoding("UTF-8");
3、重名文件被覆盖的问题
System.currentMillions()+"_"+a.txt(乐观)
UUID+"_"+a.txt:保证文件名唯一
4、分目录存储上传的文件
方式一:当前日期建立一个文件夹,当前上传的文件都放到此文件夹中。
方式二:利用文件名的hash码打散目录来存储。
int hashCode = fileName.hashCode();
1001 1010 1101 0010 1101 1100 1101 1010
hashCode&0xf;   0000 0000 0000 0000 0000 0000 0000 1111 &
---------------------------------------------
0000 0000 0000 0000 0000 0000 0000 1010   取hashCode的后4位
0000~1111:整数0~15共16个
1001 1010 1101 0010 1101 1100 1101 1010
(hashCode&0xf0) 0000 0000 0000 0000 0000 0000 1111 0000  &
--------------------------------------------
0000 0000 0000 0000 0000 0000 1101 0000  >>4
--------------------------------------------
0000 0000 0000 0000 0000 0000 0000 1101
0000~1111:整数0~15共16个
5、限制用户上传的文件类型
通过判断文件的扩展名来限制是不可取的。
通过判断其Mime类型才靠谱。FileItem.getContentType();
6、如何限制用户上传文件的大小
6.1单个文件大小限制。超出了大小友好提示
抓异常进行提示:org.apache.commons.fileupload.FileUploadBase.FileSizeLimitExceededException
6.2总文件大小限制。超出了大小友好提示
抓异常进行提示:org.apache.commons.fileupload.FileUploadBase.SizeLimitExceededException
7、临时文件的问题
commons-fileupload组件不会删除超出缓存的临时文件。
FileItem.delete()方法删除临时文件。但一定要在关闭流之后。
8、多个文件上传时,没有上传内容的问题
if(fileName==null||"".equals(fileName.trim())){
continue;
}
9、上传进度检测
给ServletFileUpload注册一个进度监听器即可,把上传进度传递给页面去显示
//pBytesRead:当前以读取到的字节数
//pContentLength:文件的长度
//pItems:第几项
public void update(long pBytesRead, long pContentLength,
int pItems) {
System.out.println("已读取:"+pBytesRead+",文件大小:"+pContentLength+",第几项:"+pItems);

http://www.mmbaike.com/news/56983.html

相关文章:

  • 业务型网站首页贵阳网络推广排名
  • wordpress孤单链接设置长沙seo
  • 在国外网站上买机票怎样做财务安卓优化大师破解版
  • 上海集团网站建设价格镇江网站建设推广
  • 为什么做网站需要服务器优化设计三要素
  • 网站中弹出广告怎么做企业营销型网站策划
  • 营销型网站建设排名seo网络营销招聘
  • 在贸易网站怎么做贸易哈尔滨seo推广优化
  • 上住房和城乡建设部网站如何做一个营销方案
  • 服装定制加盟seo搜索优化服务
  • wordpress主题零基础seo标题优化裤子关键词
  • 80后陈某做盗版视频网站电商营销推广方法
  • 做游戏交易网站有哪些2022年列入传销组织最新骗法
  • 山东机关建设网站老版百度app优化
  • 青岛网站seo收费seo交流
  • 潜江市住房城乡建设委员会网站石家庄线上推广平台
  • 做的网站不能放视频厦门seo排名优化
  • 加盟网站建设自媒体平台注册官网下载
  • 如何自己弄个免费网站免费下载b站视频软件
  • 网站发帖做业务fifa最新排名出炉
  • 专业专业的网站开发网站推广专家
  • php网站开发案例教程如何做好一个网站
  • 重庆专业的网站建设公司百度网址提交入口平台
  • 网站制作公司哪个好怎样做app推广
  • 获取别人wordpress主题常熟seo关键词优化公司
  • 电商网站的宣传推广网络营销理论基础
  • 小米果怎么做视频网站bt搜索引擎下载
  • 血液中心网站建设方案自动外链工具
  • 比价网站源码整站程序搜狗搜索引擎优化
  • 池州网站建设公司电脑培训班一般多少钱