文件上传

一、要求

    1、表单的提交方式为post

    2、表单的enctype必须设置为multipart/form-data    

    3、每一个文件控件的必须有一个name属性

    4、文件上传的目标一般为服务器的web-info或者服务器所在主机磁盘(非项目目录)

二、Smartupload

文件上传时,是直接将文件加载在内存中,所以上传大文件时很容易内存溢出

三、Commons-Filupload

是Apache开源项目,利用磁盘指定位置作为临时文件,而不是一次性加载内存中,上传完成后会清空文件,common-fileupload为推荐上传组件(strus2框架默认支持,servlet3.0作为一个模块)

    非servlet3.0的项目使用时,需要导包。

四、servlet3.0方式

@WebServlet(urlPatterns = "/test/UploadServlet")

@MultipartConfig(location = "D:\\test"

// ,fileSizeThreshold = 10240,

// maxFileSize = 10240000L,

// maxRequestSize = 102400000000L

)

 

//设置临时文件的存储目录,内存缓存最大限制,允许上传的单个文件最大值,允许提交的表单数据总大小

public class UploadServlet extends HttpServlet {

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        Part part=request.getPart("myfile");//表单的file组件的name属性,

        String fname = part.getSubmittedFileName();//获得上传文件名称

        part.write("D:\\test\\"+fname);//将数据保存到指定文件中

    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        doPost(request,response);

    }

}

//=========================

<form action="/test/UploadServlet" method="post" id="f" enctype="multipart/form-data" name="myform">

<div class="input-group">

<input type="file" name="myfile">

</div>

<button class="btn-primary">提交</button>

</form>

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值