java实现文件的上传功能

网友投稿 266 2022-08-30


java实现文件的上传功能

本文实例为大家分享了java实现文件的上传功能的具体代码,供大家参考,具体内容如下

直接上代码了

一、上传界面

<%@ page language="java" contentType="text/html; charset=utf-8"

pageEncoding="utf-8"%>

姓名:

年龄:

照片 :


二、Servlet处理

package com.ui.servlet;

import java.io.File;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream;

import java.util.List;HLuLYd

import javax.servlet.ServletException;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.apache.commons.fileupload.FileItem;

import org.apache.commons.fileupload.disk.DiskFileItemFactory;

import org.apache.commons.fileupload.servlet.ServletFileUpload;

import org.apache.tomcat.jni.OS;

import com.mysql.jdbc.Field;

/**

* Servlet implementation class RegisterServlet

*/

@WebServlet("/registerServlet")

public class RegisterServlet extends HttpServlet {

private static final long serialVersionUID = 1L;

/**

* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)

*/

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

// TODO Auto-generated method stub

if(!ServletFileUpload.isMultipartContent(request))

{

throw new RuntimeException("当前不支持文件上传");

}

try {

DiskFileItemFactory factory=new DiskFileItemFactory();

//设置使用临时文件的边界值,大鱼该值得文件上传会先保存在临时文件中,否则上传文件会直接写入到内存当中去

//单位 字节 在这里设置的为1m

factory.setSizeThreshold(1024*1024*1);

//设置临时文件

String temppath=this.getServletContext().getRealPathHLuLYd("/temp");

File file2=new File(temppath);

factory.setRepository(file2);

//创建文件上传核心组件

ServletFileUpload fileUpload=new ServletFileUpload(factory);

//设置单个文件的大小不超过多少

fileUpload.setFileSizeMax(1024*1024*2);

//上传多个文件的要求总的大小不超过多少

fileUpload.setSizeMax(1024*1024*5);

fileUpload.setHeaderEncoding("utf-8");

//设置每一个item的字符编码为utf-8

List items=fileUpload.parseRequest(request);

for (FileItem fileItem : items) {

if(fileItem.isFormField())

{

String filename=fileItem.getFieldName();

String fileValue=fileItem.getString("utf-8");

System.out.println(filename+"----"+fileValue);

}

else //如果是文件上传表单项

{

String filename=fileItem.getName();

InputStream inputStream=fileItem.getInputStream();

//获取表单项的输入流

HLuLYd String path=this.getServletContext().getRealPath("/fileContents");

File file=new File(path,filename);

OutputStream outputStream=new FileOutputStream(file);

int len=-1;

byte[] bs=new byte[1024];

while((len=inputStream.read(bs))!=-1)

{

outputStream.write(bs,0,len);

}

outputStream.close();

inputStream.close();

//删除临时文件

fileItem.delete();

}

}

}

catch (Exception e) {

// TODO: handle exception

System.out.println(e);

}

}

}

三、实现结果


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:#yyds干货盘点#Qt程序的基本框架
下一篇:Python-列表(切片,复制)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~