javaweb(实现文件上传)

     2022-03-27     681

关键词:

  • 通过Servlet来实现文件上传的功能

实现用户将文件上传到服务里的功能

文件上传功能解释:

当用户在前端网页点击文件上传后,javaWeb的servlet会获得用户所提交的文件并且将文件存放到服务器里。

先看servlet端

@MultipartConfig

将该标注配置到服务器servlet上面,否则会忽略掉文件的内容。并且报错,错误信息

严重: Servlet.service() for servlet [com.xyf.web6.UploadServlet] in context with path [/webtest] threw exception
java.lang.IllegalStateException: Unable to process parts as no multi-part configuration has been provided

  

用户上传提交的内容会存放到临时的文件中,我们使用getpart来获取Part对象,

并通过Part对象获得流。另外注意导入

commons-fileupload-1.2.2.jar

commons-io-2.1.jar

到web-inf的lib目录下

servlet端的代码

package com.xyf.web6;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.UUID;

import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;

@WebServlet("/upload")
@MultipartConfig


public class UploadServlet extends HttpServlet {
	
  
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	    request.setCharacterEncoding("UTF-8");
        Part part = request.getPart("uploadFile");
	    String inputName=part.getName();
	    InputStream input=part.getInputStream();
	    //想要保存的目标文件的目录下
	    String tagDir=getServletContext().getRealPath("/upload");
	    //避免文件名重复使用uuid来避免,产生一个随机的uuid字符
	    String realFileName=UUID.randomUUID().toString();
	    OutputStream output=new FileOutputStream(new File(tagDir,realFileName));
	    int len=0;
	    byte[] buff=new byte[1024*8];
	    
	    while ((len = input.read(buff)) > -1) {
            output.write(buff, 0, len);
        }

	    input.close();
	    output.close();
	    response.setCharacterEncoding("utf-8");
	    response.getWriter().print("upload success!!");
	
	}

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

}

jsp端的代码,比较简单

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>文件上传</title>
    </head>
    <body>
        <form action="/webtest/upload" method="post" enctype="multipart/form-data">
            <input type="file" name="uploadFile" /> <br/><br/>
            <input type="submit" value="上传" />
        </form>
    </body>
</html>

  

客户端表单中必须指定method=post,因为上传的文件可能很大,并且指定enctype=multipart/form-data使用上传文件专门的编码方式

 enctype="multipart/form-data"

另外客户端还需要使用<input type="file" 选择要上传的文件

 

服务器启动后:

技术分享图片

选择当前电脑上的文件点击上传

技术分享图片

 在路径G:\eclipse\eclipse\eclipse\worksapceeeeeeee\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps\webtest\upload

可能会出现文件不存在的错误,这个时候需要先去判断 ,如果不存在就创建,添加以下代码在servlet里

 String uploadFullPath=tagDir;
	    //先创建这个文件
	    File file=new File(uploadFullPath);
	    File ParentFile=file.getParentFile();
	    if(!ParentFile.exists())
	    {
	    	ParentFile.mkdirs();//如果文件夹不存在,就创建文件夹
	    	
	    }

  这样我们的上传就算是完成了,当然这样上传是不安全的。有关上传的安全问题下文中会讲。

 

javaweb实现文件上传下载功能实例解析(好用)(代码片段)

 转:转:http://www.cnblogs.com/xdp-gacl/p/4200090.htmlJavaWeb实现文件上传下载功能实例解析 在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现。  对于文件上传,... 查看详情

javaweb之实现文件上传与下载

1、什么是上传和下载?- 数据上传是指客户端向服务器上传数据,客户端向服务器发送的所有请求都属于数据上传。文件上传是数据上传的一种特例,指的是客户端向服务器上传文件。即将保存在客户端的文件上传至服务器... 查看详情

javaweb文件上传

JavaWeb文件上传Hello,各位小伙伴好久不见,本周我们学习JavaWeb中最重要的技术之一,文件上传,该案例我会用一个小型的用户管理系统实现,一步步带入,内容通俗易懂,下面我们步入正题!做一个简单的用户管理系统功能如... 查看详情

javaweb实现上传头像功能,

有多台服务器映射了一个外网地址,每次访问的其实是其中的一台主机当上传图片时需要将本地的图片同时上传到其他的主机上,这个我知道怎么实现我用的是FTPclient类。现在的问题是在服务器上当我想把文件转换成文件流时new... 查看详情

javaweb学习(二十八)————文件上传和下载

...,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现。  对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用Servlet获取上传文件的输入流然后... 查看详情

javaweb实现文件下载

1.编写文件上传Servlet1publicclassFileUpload1extendsHttpServlet{2@Override3protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{45InputStreamin=null;6Ou 查看详情

javaweb:servlet实现下载与上传功能

本文内容: servlet实现下载功能servlet实现上传功能 首发日期:2018-07-21servlet实现下载功能实现流程1.首先制作一个jsp页面,主要是用来触发下载的。这里可以根据你的想法来做,当然servlet那边就要相应的更改了。我这里... 查看详情

利用commons-fileupload实现文件上传分析(转)

转自:利用Commons-Fileupload实现文件上传 JavaWeb开发人员可以使用Apache文件上传组件来接收浏览器上传的文件,该组件由多个类共同组成,但是,对于使用该组件来编写文件上传功能的JavaWeb开发人员来说,只需要了解和使用其... 查看详情

javaweb项目实现上传文件以及下载文件功能的关于路径的问题

项目目录是这样的。部署好后,登录该系统将一文件上传至webapp下某文件夹,然后下载该文件,也是在该系统中文件上传到src里,下载从target目录里下载,target目录是编译输出的结果,如果我刚上传文件,然后立刻下载,target文... 查看详情

如何实现ckeditor文件上传

想把javaweb项目中的fckeditor在线文本编辑器升级到ckeditor,但又不想购买ckfinder来实现文件上传?老k将告诉你一个不用花钱就可以实现ckeditor上传文件的好方法,只要对fckeditor的filemanager做出几处修改,就可以集成fckeditor的文件上... 查看详情

javaweb开发中用户上传头像如何实现,尽量详细些。。。。谢谢各位大侠!

1、准确的说,应该是文件上传如何实现。2、文件上传,一般都是能过组件来实现,自己来写上传的话,不太方便,也没必要,别人都做的太多了。3、smartupload或是common-fileupload都是经常用的组件,具体用法,直接搜“smartupload上... 查看详情

javaweb中的文件上传和下载功能的内容就这么多

一、开发环境搭建  创建一个FileUploadAndDownLoad项目,加入Apache的commons-fileupload文件上传组件的相关Jar包,如下图所示:二、实现文件上传2.1、文件上传页面和消息提示页面  upload.jsp页面的代码如下:1<%@pagelanguage="java"pageEn... 查看详情

(27)javaweb的struts2框架的使用-基于表单的多文件上传

和单个文件上传配置都是一样的,只是在action中接受参数时候,接受的是数组,不再是单个的文件。一,action的实现:publicclassMutableFilesUploadextendsActionSupport{ privatestaticfinallongserialVersionUID=1L; publicFile[]uploadObjects; publicString[]uplo 查看详情

javaweb断点续传,我用的是fileupload来做的上传。

现在上传和进度条已经实现的,就是断点续传和。和断点进度条要如何实现我一点头绪也没有,求高手指点!!!我用的上传jar是Commons-fileupload和Commons-ioform提交的<inputtype="file">数据在后台要如何获取上传文件的名字... 查看详情

javaweb文件上传

文件上传【https://github.com/Davis-Samuel/File-Upload/blob/master/JavaWeb%E5%8A%9F%E8%83%BD%E6%89%A9%E5%B1%95.md】导入pom依赖:<!--文件上传--><dependency><groupId>commons-fileupload</groupId> 查看详情

javaweb文件上传在idea中不显示

参考技术A上传错误。javaweb文件是可以在ipad上进行上传的,不显示表示其上传错误需要重新上传。iPad是苹果公司生产的一款产品。 查看详情

javaweb文件上传和下载

第一步先新建一个com.aaa.util包在包里新建一个FileUtil工具类(包括上传和下载方法)publicclassFileUtil{/***通用上传方法*@paramsavePath*@parammultipartFile*@return*/publicstaticStringuploadFile(StringsavePath,MultipartFilemultipartFile){Str 查看详情

javaweb——文件上传和下载

  对于文件上传,浏览器在上传过程中是将文件以流的形式提交到服务器端。如果直接使用servlet获取上传文件的输入流然后再解析里面的请求参数是比较麻烦的,所以一般选择采用apache的开源工具common-fileupload这个文件上... 查看详情