apache任意文件上传,apache服务器上传文件,Apache commons fileupload文件上传实例讲解

apache任意文件上传,apache服务器上传文件,Apache commons fileupload文件上传实例讲解

这篇文章主要为大家详细介绍了Apache commons文件上传文件上传实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

文件上传的方法主要目前有两个常用的,一个是SmartUpload,一个是街头流氓的Commons fileupload.

我们这里主要介绍下第二个的用法,首先要上传文件,注意几个问题:

一表格表单内,要添加空间输入类型='文件'名称='我的文件'

2表格表单的内容格式要定义成多部分/表单数据格式

3需要类库:1 commons-io。jar 2 commons-文件上传-1。3 .1 .冲突

接下来我们看下用法。

首先阅读Apache commons文件上传的官方文档可以发现下面几个常用的函数:

一创建文件解析对象

复制代码代码如下:DiskFileUpload DiskFileUpload=new DiskFileUpload();

2进行文件解析后放在目录中,因为这个类库支持多个文件上传,因此把结果会存在目录中。

复制代码代码如下:ListFileItem list=disk file upload。解析请求(请求);

3获取上传文件,进行分析(不是必须)

复制代码代码如下:File remoteFile=新文件(新字符串(fileItem.getName().getBytes(),' UTF-8 ');

四创建新对象,进行流拷贝

文件1=新文件(this.getServletContext().getRealPath('attachment '),远程文件。getname());

file1.getParentFile().mkdirs();

文件1。创建新文件();

InputStream ins=fileitem。getinputstream();

输出流ou=新文件输出流(文件1);

尝试{

字节[]缓冲区=新字节[1024];

int len=0;

while((len=ins.read(buffer)) -1)

ous.write(buffer,0,len);

out.println('以保存文件文件1。getabsolutepath()' br/');

}最后{

欧斯。close();

移民局。close();

}

这样我们就完成了文件的上传。

fileUpload.html

表单操作=' servlet/上传servlet '方法=' post ' enctype=' multipart/form-data '

div align='center '

字段集样式='宽度:80% '

神话;传奇上传文件/legendbr/

div align='left '上传文件1/格

div align='left '

输入类型='文件'名称='文件1'/

/div

div align='left '上传文件2/格

div align='left '

输入类型='文件'名称='文件2'/

/div

差异

div align='left '上传文件说明1/格

div align=' left ' input type=' text ' name=' description 1 '//div

/div

差异

div align='left '上传文件说明2/格

div align=' left ' input type=' text ' name=' description 2 '//div

/div

差异

div align='left '

输入类型='提交'值='上传文件'/

/div

/div

/字段集

/div

/表单

web.xml

小型应用程序

servlet-name上传servlet/servlet-name

servlet-classcom.test.hello.UploadServlet/servlet-class

/servlet

小型应用程序映射

servlet-name上传servlet/servlet-name

全球资源定位器(Uniform Resource Locator)模式/servlet/UploadServlet/url模式

/servlet-映射

UploadServlet.java

包com。测试。你好;

导入Java。io。文件;

导入Java。io。文件输出流;

导入Java。io。io异常;

导入Java。io。inputstream

导入Java。io。输出流;

导入Java。io。版画家;

导入Java。util。列表;

导入javax。servlet。servlet异常;

导入javax。servlet。http。http servlet

导入javax。servlet。http。http servlet请求;

导入javax。servlet。http。http servlet响应;

导入org。阿帕奇。公地。文件上传。diskfileupload

导入org。阿帕奇。公地。文件上传。文件项目;

导入组织。阿帕奇。公地。文件上传。文件上传异常;

公共类UploadServlet扩展HttpServlet {

/**

*对象的构造函数。

*/

公共UploadServlet() {

super();

}

/**

小型应用程序的破坏。英国铁路公司

*/

public void destroy() {

超级棒。destroy();//只将“摧毁”字符串放入日志中

//将您的代码放在这里

}

/**

小型应用程序的多吉特方法。英国铁路公司

*

*当表单的标记值等于得到时,调用此方法。

*

* @param请求客户端向服务器发送的请求

* @param响应服务器发送给客户端的响应

* @发生错误时抛出ServletException

* @发生错误时抛出IOException

*/

公共void doGet(HttpServletRequest请求,HttpServletResponse响应)

引发ServletException,IOException {

回应。setcharacterencoding(“UTF-8”);

response.getWriter().println('请以邮政方式上传文件');

}

/**

小型应用程序的doPost方法。英国铁路公司

*

*当表单的标记值方法等于邮政时,调用此方法。

*

* @param请求客户端向服务器发送的请求

* @param响应服务器发送给客户端的响应

* @发生错误时抛出ServletException

* @发生错误时抛出IOException

*/

@SuppressWarnings({ 'unchecked ',' deprecation' })

公共void doPost(http servlet请求请求,HttpServletResponse响应)

引发ServletException,IOException {

文件文件1=空,文件2=空

字符串描述1=空,描述2=空.

回应。setcharacterencoding(“UTF-8”);

请求。setcharacterencoding(“UTF-8”);

回应。设置内容类型(“文本/html”);

PrintWriter out=响应。getwriter();

DiskFileUpload DiskFileUpload=new DiskFileUpload();

尝试{

ListFileItem list=disk file upload。解析请求(请求);

out.println('遍历所有的FileItem.br/');

for(FileItem fileItem : list){

if(fileItem.isFormField()){

如果('描述1 '。等于(fileitem。获取字段名()){

out.println('遍历到描述一.br/');

描述1=新字符串(fileItem.getString().getBytes(),' UTF-8 ');

}

如果('描述2 '。等于(fileitem。获取字段名()){

out.println('遍历到描述2.br/');

描述2=新字符串(fileItem.getString().getBytes(),' UTF-8 ');

}

}否则{

if('文件1 ').等于(fileitem。获取字段名()){

File remoteFile=新文件(新字符串(fileItem.getName().getBytes(),' UTF-8 ');

out.println('遍历到文件一.br/');

out.println('客户端文件位置:'远程文件。getabsolutepath()' br/');

文件1=新文件(this.getServletContext().getRealPath('attachment '),远程文件。getname());

file1.getParentFile().mkdirs();

文件1。创建新文件();

InputStream ins=fileitem。getinputstream();

输出流ou=新文件输出流(文件1);

尝试{

字节[]缓冲区=新字节[1024];

int len=0;

while((len=ins.read(buffer)) -1)

ous.write(buffer,0,len);

out.println('以保存文件文件1。getabsolutepath()' br/');

}最后{

欧斯。close();

移民局。close();

}

}

if('file2 ').等于(fileitem。获取字段名()){

File remoteFile=新文件(新字符串(fileItem.getName().getBytes(),' UTF-8 ');

out.println('遍历到文件2.br/');

out.println('客户端文件位置:'远程文件。getabsolutepath()' br/');

文件2=新文件(this.getServletContext().getRealPath('attachment '),远程文件。getname());

file2.getParentFile().mkdirs();

文件2。创建新文件();

InputStream ins=fileitem。getinputstream();

输出流ou=新文件输出流(文件2);

尝试{

字节[]缓冲区=新字节[1024];

int len=0;

while((len=ins.read(buffer)) -1)

ous.write(buffer,0,len);

out.println('以保存文件文件2。getabsolutepath()' br/');

}最后{

欧斯。close();

移民局。close();

}

}

}

out.println('请求解析完毕br/br/');

}

}catch(FileUploadException e){}

out.println('!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN ' ');

出去。println(' HTML ');

出去。println(' HEAD TITLE a Servlet/TITLE/HEAD ');

出去。println(' BODY ');

if(file1!=null){

出去。println(' div ');

出去。println(' div align=' left ' file 1;/div’);

出去。println(' div align=' left ' a href=' '请求。getcontextpath()'/attachment/'

文件1。getname()' ' target=_ blank '文件1。getname()'/a ');

出去。println('/div ');

出去。println('/div ');

}

if(file2!=null){

出去。println(' div ');

出去。println(' div align=' left ' file 2;/div’);

出去。println(' div align=' left ' a href=' '请求。getcontextpath()'/attachment/'

文件2。getname()' ' target=_ blank '文件2。getname()'/a ');

出去。println('/div ');

出去。println('/div ');

}

出去。println(' div ');

出去。println(' div align=' left ' description 1:/div ');

出去。println(' div align=' left ' ');

out.println(描述1);

出去。println('/div ');

出去。println('/div ');

出去。println(' div ');

出去。println(' div align=' left ' description 2:/div ');

出去。println(' div align=' left ' ');

out.println(描述2);

出去。println('/div ');

出去。println('/div ');

出去。println('/BODY ');

出去。println('/HTML ');

出去。flush();

出去。close();

}

/**

小型应用程序的初始化。英国铁路公司

*

* @发生错误时抛出ServletException

*/

公共void init()引发ServletException {

//将您的代码放在这里

}

}

运行示例

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • swf upload,fileupload控件上传文件
  • swf upload,fileupload控件上传文件,文件上传插件SWFUpload的使用指南
  • fileupload控件上传图片,fileupload实现多文件上传
  • fileupload控件上传图片,fileupload实现多文件上传,使用fileupload组件实现文件上传功能
  • filereader blob,js下载文件到本地 blob
  • filereader blob,js下载文件到本地 blob,js利用FileReader读取本地文件或者blob方式
  • fileitem获取文件名,fileitem.write
  • fileitem获取文件名,fileitem.write,浅谈FileItem类的常用方法
  • dockerfile cmd enterpoint,docker run cmd entrypoint的区别
  • dockerfile cmd enterpoint,docker run cmd entrypoint的区别,Dockerfile中ENTRYPOINT 和 CMD的区别说明
  • asp fileupload,
  • asp fileupload,,aspupload 3.0 下载与使用集锦
  • ,,聊聊MultipartFile与File的一些事儿
  • ,,病毒Autorun.inf、pagefile.pif等的解决办法
  • ,,File.createTempFile创建临时文件的示例详解
  • 留言与评论(共有 条评论)
       
    验证码: