分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 前端开发

文件上传(表单文件上传)

发布时间:2023-09-06 02:07责任编辑:郭大石关键词:文件上传

文件上传是开发一个网站最基本的一个需求功能

前台页面的设置:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><form action="upload.do?method=upload" method="post" enctype="multipart/form-data"> ???美照:<input type="file" name="image"/><br> ???姓名:<input type="text" name="name"/><br> ???<input type="submit"/></form>

要点:

  1、提交的方式必须是post方式,因为get方式是通过url地址栏进行数据的传递的,所以不能选用get方法

  2、在form标签中需要添加 enctype="multipart/form-data"属性,如果不添加需要上传的信息内容不能传递到后台,只会传递该文件的文件名过去。使用了该属性则必须在后台使用工具将数据分离

后台设置:

  在src目录下创建一个com.servlet包,然后添加一个UploadServlet.java类,并将该类注册到web.xml中

  拷贝cos.jar-->https://github.com/DarknessShadow/DataMaven  包放于web项目的lib目录下(cos.jar主要功能是用来分离前台传递过去的数据,然后将分离出的文件在写入到指定的路径中)

package com.servlet;import java.io.IOException;import java.util.Map;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.oreilly.servlet.MultipartRequest;import com.util.Upload;public class UploadServlet extends HttpServlet{ ???@Override ???protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ???????request.setCharacterEncoding("utf-8"); ???????response.setContentType("text/html;charset=utf-8"); ???????????????String method = request.getParameter("method"); ???????System.out.println(method); ???????if("upload".equals(method)){ ???????????doUpload(request,response); ???????} ???????} ???private void doUpload(HttpServletRequest request, HttpServletResponse response) throws IOException {// ?????按照原先的servlet的接收方式,是接收不到数据的,必须使用工具将数据分离// ?????String image = request.getParameter("image");// ?????System.out.println(image);// ?????String name = request.getParameter("name");// ?????System.out.println(name); ???????// ?????同过request对象获取存储图片的真实路径 ???????String path = request.getServletContext().getRealPath("/images"); ???????System.out.println(path);// ?????获取存储数据的对象,并设置其对应的编码,路径 ???????MultipartRequest mr = new MultipartRequest(request, path,"utf-8");// ?????获得前台发送过来的文件原始名称 ???????String image = mr.getOriginalFileName("image"); ???????System.out.println(image);// ?????获取前台表单发送过来的普通数据 ???????String name = mr.getParameter("name"); ???????System.out.println(name); ???????????}} ???

缺陷:重命名问题、中文显示问题

文件上传(表单文件上传)

原文地址:https://www.cnblogs.com/myfaith-feng/p/9589576.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved