文件上传功能的实现

一:文件上传功能

先要在在index.jsp的界面上初始化一个表单。

代码如下:

<body>
<form enctype="multipart/form-data" action="<%=path%>/1.jsp" method="post">
姓名:<input type="text" name="username"/>
选择文件:<input type="file" name="myfile"/>
<input type="submit" value="提交"/>
</form>

:enctype=多部分的表单数据,并且如果form表单的属性中多了enctype="multipart/form-data",是不能使用request.getParameter(name属性的)

在WEB-ROOT的根目录下创建一个1.jsp,实现文件上传功能!
代码如下:

<%@page import="java.io.File"%>
<%@page import="org.apache.commons.fileupload.FileItem"%>
<%@page import="org.apache.commons.fileupload.disk.DiskFileItemFactory"%>
<%@page import="org.apache.commons.fileupload.servlet.ServletFileUpload"%>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
//判定request请求的类型
request.setCharacterEncoding("utf-8");
boolean flag= ServletFileUpload.isMultipartContent(request);
if(flag)
{
DiskFileItemFactory factory=new DiskFileItemFactory();
//找到一个解析器,解析请求中的各个项目
ServletFileUpload upload=new ServletFileUpload(factory);//解析器的创建
List<FileItem> list=upload.parseRequest(request);//使用解析器解析请求的数据
Iterator<FileItem> myitor= list.iterator();//自动迭代的功能
while(myitor.hasNext())
{
FileItem item=myitor.next();
if(item!=null)
{
//判断FileItem对象封装的数据类型,文件表单或普通表单字段
if(item.isFormField())//普通表单
{
String name= item.getFieldName();//获取表单的name属性
if(name.equals("username"))
{
out.print(item.getString("utf-8"));
}
}
else
{
String name=item.getName();//获得文件名
out.print(name);
String path="/WEB-INF/upload/";//相对路径名
String path2=this.getServletContext().getRealPath(path);//通过相对路径名来获得绝对路径名
out.print(path2);
File file=new File(name);
File uploadpath=new File(path2,file.getName());
item.write(uploadpath);//向该路径写入文件
out.print("上传成功");
}
}
}
}

时间: 2024-08-06 11:57:40

文件上传功能的实现的相关文章

达到HTTP合约Get、Post和文件上传功能——采用WinHttp介面

于<采用WinHttp实现HTTP协议Get.Post和文件上传功能>一文中,我已经比較具体地解说了怎样使用WinHttp接口实现各种协议. 在近期的代码梳理中,我认为Post和文件上传模块能够得到简化,于是差点儿重写了这两个功能的代码.由于Get.Post和文件上传功能的基础(父)类基本没有修改,函数调用的流程也基本没有变化,所以本文我将重点解说修改点. (转载请指明出于breaksoftware的csdn博客) 首先我改动了接口的字符集.之前我都是使用UNICODE作为接口參数类型,当中一

实现HTTP协议Get、Post和文件上传功能——使用libcurl接口实现

之前我们已经详细介绍了WinHttp接口如何实现Http的相关功能.本文我将主要讲解如何使用libcurl库去实现相关功能.(转载请指明出于breaksoftware的csdn博客) libcurl在http://curl.haxx.se/libcurl/有详细的介绍,有兴趣的朋友可以去读下.本文我只是从实际使用的角度讲解其中的一些功能. libcurl中主要有两个接口类型:CURL和CURLM.CURL又称easy interface,它接口简单.使用方便,但是它是一个同步接口,我们不能使用它

实现HTTP协议Get、Post和文件上传功能——使用WinHttp接口实现

在<使用WinHttp接口实现HTTP协议Get.Post和文件上传功能>一文中,我已经比较详细地讲解了如何使用WinHttp接口实现各种协议.在最近的代码梳理中,我觉得Post和文件上传模块可以得到简化,于是几乎重写了这两个功能的代码.因为Get.Post和文件上传功能的基础(父)类基本没有改动,函数调用的流程也基本没有变化,所以本文我将重点讲解修改点.(转载请指明出于breaksoftware的csdn博客) 首先我修改了接口的字符集.之前我都是使用UNICODE作为接口参数类型,其中一个

AEAI Miscdp文件上传功能使用心得

1.概述 在实际项目中,我们常常可以遇到这样的情况:上传头像.上传图片.上传视频.上传音乐.上传作业,等等-那么如何使用MiscdpStudio对这类功能进行开发,就成了MiscdpStudio使用者必须掌握的技能之一. 接下来,我就对单表操作模型,简单介绍一下如何对文件进行上传.这里,我们主要使用的是fileupload组件,当然,这也是开发平台中自带的组件. 2.创建数据表 在这里,我们需要在数据库创建两个表,一个是业务表.另一个是关联表.关联表里有三个字段:逻辑主键.业务标识字段.附件标识

iOS 的 Safari 文件上传功能详解

iOS 6 给 Safari 浏览器带来的另外一个功能是文件上传,终于 Safari 终于支持 input 输入框的文件类型了,并且还支持 HTML媒体捕获(HTML Media Capture). 上传单张图片或者视频 <input type="file"> 可以选择直接拍照或者摄影,也可以从相册中选取.选好之后,iOS 上的 Safari 和其他浏览器不同是它显示图片的截图,而不是图片的临时名称. 上传多张图片或者视频 如果你想一次上传多张图片,可以使用 HTML5 一

Spring MVC 文件上传功能详解

前言 在Spring MVC中实现文件上传功能并不复杂,前端使用HTML语法,后端使用特定抽象.参考Spring Boot相关文档即可.本文主要讲解常见资料忽略的两个问题: 文件上传错误 链接重置问题 版本:Spring Boot 1.5x 文件上传错误 一个关注点是如何处理文件上传期间发生的错误,错误主要分为两类: IOException 文件读取或写入错误. MultipartException 上传文件时,超过文件大小上限所触发的异常. IOException 只需要在Controller

文件/大文件上传功能实现(JS+PHP)全过程

文件/大文件上传功能实现(JS+PHP) 参考博文:掘金-橙红年代 前端大文件上传 路漫漫 其修远 PHP + JS 实现大文件分割上传 本文是学习文件上传后的学习总结文章,从无到有实现文件上传功能,前端小白写的代码不是最优,如果有错误的地方请多多指教,如果本文对你有所帮助,深感荣幸. 近期公司的项目中,涉及到上传大文件的问题,大文件上传用普通表单上传时出现的问题是,无法断点续存,一但中途中断上传,就要重头开始,这很明显不是我们想要的,所以经过一番查询,学习了一下大文件分割上传的方法.并且使用简

文件上传功能实现(一)

文件上传: ①上传前的准备工作(准备一个注册的表单页面) 创建一个文件上传的控件,点击这个控件就可以选择需要上传的文件了 <form action="/upload" method="post" enctype="multipart/form-data"> <input type="file" name="headimg" /> 注意:上传时表单的上传类型必须是:multipart/

PHP文件上传功能 -- 多文件上传

这一节内容主要介绍PHP上传文件的多文件上传功能. 只要以数组形式来命名表单中的文件上传标记,即可实现多个文件同时上传. 下面我们来看一个例子: --------------------------------------------------------------------- <form enctype="multipart/form-data" action="<?=$_SERVER['PHP_SELF']?>" method="