当前位置: 首页 > news >正文

论某政府网站职能建设销售培训课程一般有哪些

论某政府网站职能建设,销售培训课程一般有哪些,wordpress加入视频播放器,网站模板下载湖南岚鸿网站概念 当用户在前端页面点击文件上传后&#xff0c;用户上传的文件数据提交给服务器端&#xff0c;实现保存。 文件上传步骤 提交方式&#xff1a; 提供form表单&#xff0c;method必须是post。因为post请求无数据限制。 <form method"post"></form>…

概念

当用户在前端页面点击文件上传后,用户上传的文件数据提交给服务器端,实现保存。

文件上传步骤

提交方式:

提供form表单,method必须是post。因为post请求无数据限制。

<form method="post"></form>

提交数据格式:

表单的enctype属性值必须为multipart/form-data.

以多段的形式进行拼接提交。以二进制的方式来处理表单数据,会把指定的文件内容封装进请求参数中。

<form enctype="multipart/form-data" method="post"></form>

提供组件:

提供file表单组件,提供给用户上传文件。

解决文件上传命名重复问题:

当上传重复的文件时,为防止文件覆盖的现象发生,要为上传文件产生一个唯一的文件名。

public class UploadUtls{

        //使用UUID生成唯一标识码,并拼接上图片的名称

        public static String NewFileName(String fileName){

                return UUID.randomUUID().toString.replaceAll("-","")+"_"+fileName;

        }

}

upload.jsp代码

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>文件上传页面</title>
</head>
<body><form action="${pageContext.request.contextPath}/upload" enctype="multipart/form-data" method="post">用户名: <input type="text" name="username"> <br>选择文件: <input type="file" name="file"> <br><input type="submit" value="上传"></form>
</body>
</html>

UploadController.java代码(注意:上传成功后创建的文件夹与文件在真实的文件目录下,即out目录下)

import com.tyh.utils.UploadUtils;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;
import java.io.File;
import java.io.IOException;//实现文件上传
@WebServlet(name = "UploadController",value = "/upload")
//文件注解,maxFileSize单个文件上传空间大小,maxRequestSize多个文件总共上传空间大小
@MultipartConfig(maxFileSize = 1024*1024*100,maxRequestSize = 1024*1024*200)
public class UploadController extends HttpServlet {@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//设置编码req.setCharacterEncoding("UTF-8");resp.setContentType("text/html;charset=UTF-8");//获取请求的数据String username = req.getParameter("username");//获取文件上传的数据Part part = req.getPart("file");//获取上传文件的路径 真实路径String uploadPath = req.getServletContext().getRealPath("/WEB-INF/upload");File file = new File(uploadPath);if (!file.exists()){//不存在则新建文件夹file.mkdirs();}//文件上传//生成唯一文件名String oldName = part.getSubmittedFileName();String newName = UploadUtils.newFileName(oldName);part.write(uploadPath+"\\"+newName);//响应客户端 上传成功resp.getWriter().println(part.getSubmittedFileName()+"上传成功!");}@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doPost(req, resp);}
}

 文件类型限制:

要限制上传文件地类型,在收到上传文件名时,判断后缀名是否合法。

//创建一个集合存放允许上传的文件地类型(后缀名)

//判断所上传的文件在当前集合中是否包含

LIst<String> nameList = new ArrayList<String>();

nameList.add(".jpg");

nameList.add(".png");

nameLiat.add(".jpeg");

String newName = fileName.substring(fileName.lastIndex("."));

if(!nameList.contains(newName)){

        response.getWriter().println(fileName+"不符合文件上传规则!");

        return;

}

多文件上传: 

1.利用request.getParts()获取文件集并存储到Collection集合中,

2.利用增强for循环遍历集合中的每个文件对象

3.然后同以上单个上传文件原理一样,依次逐个上传文件

JSP页面代码

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>文件上传页面</title>
</head>
<body><form action="${pageContext.request.contextPath}/moreUpload" enctype="multipart/form-data" method="post">选择文件: <input type="file" name="file"> <br>继续选择文件: <input type="file" name="file2"> <br><input type="submit" value="上传"></form>
</body>
</html>

Servlet代码

import com.tyh.utils.UploadUtils;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;
import java.io.File;
import java.io.IOException;
import java.util.Collection;//多文件上传
@WebServlet(name = "MoreUploadController",value = "/moreUpload")
@MultipartConfig(maxFileSize = 1024*1024*100,maxRequestSize = 1024*1024*200)
public class MoreUploadController extends HttpServlet {@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//处理编码req.setCharacterEncoding("UTF-8");resp.setContentType("text/html;charset=UTF-8");//获取上传文件的路径 真实路径String uploadPath = req.getServletContext().getRealPath("/WEB-INF/upload");File file = new File(uploadPath);if (!file.exists()){//不存在则新建文件夹file.mkdirs();}//获取表单提交的所有数据Collection<Part> parts = req.getParts();for (Part part : parts){String fileName = part.getSubmittedFileName();if (fileName != null){//文件//未选择文件if (fileName.trim().equals("")){continue;}//依次循环上传文件String newName = UploadUtils.newFileName(fileName);//上传文件part.write(uploadPath+"\\"+newName);//响应客户端 上传成功resp.getWriter().println(part.getSubmittedFileName()+"上传成功!");} else {//普通表单项String username = req.getParameter(part.getName());System.out.println(username);}}}@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doPost(req, resp);}
}

文件下载:

显示文件下载列表:

我们要将Web应用系统中的文件资源提供给用户进行下载,首先我们要有一个页面列出上传文件目录下的所有文件,当用户点击文件下载超链接时就进行下载操作。

获取文件列表工具类 DownLoadUtils.java

import java.io.File;
import java.util.HashMap;//循环查找指定目录下所有文件
public class DownLoadUtils {public static void getFileList(File file, HashMap<String,String> fileMap){//获取文件集合File[] files = file.listFiles();for (File f : files){if (f.isDirectory()){//目录getFileList(file,fileMap);} else {//文件String fileName = f.getName();//截取文件名int index = fileName.lastIndexOf("_");String realName = fileName.substring(index + 1);fileMap.put(fileName,realName);}}}
}

获取文件列表控制层类 FileListController.java

import com.tyh.utils.DownLoadUtils;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 java.io.File;
import java.io.IOException;
import java.util.HashMap;//获取下载列表
@WebServlet(name = "FileListController",value = "/fileList")
public class FileListController extends HttpServlet {@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//设置编码req.setCharacterEncoding("utf-8");resp.setContentType("text/html;charset=utf-8");//集合Map key=UUID value=源文件名称HashMap<String,String> fileMap = new HashMap<>();String basePath = req.getServletContext().getRealPath("/WEB-INF/upload");//将查找到的文件添加到Map中DownLoadUtils.getFileList(new File(basePath),fileMap);//存储数据req.setAttribute("fileMap",fileMap);req.getRequestDispatcher("/fileUpload/fileList.jsp").forward(req,resp);}@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doPost(req, resp);}
}

显示文件列表页面 fileList.jsp

实现下载文件功能:

为fileList.jsp文件中的超链接标签加上url地址

<a href="${pageContext.request.contextPath}/downLoad?filename=${entry.key}">下载</>

实现下载文件类DownLoad.java

 

import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.FileInputStream;
import java.io.IOException;
import java.net.URLEncoder;//下载文件
@WebServlet(name = "DownLoad",value = "/downLoad")
public class DownLoad extends HttpServlet {@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException {//设置编码req.setCharacterEncoding("utf-8");resp.setContentType("text/html;charset=utf-8");//获取下载目录String basePath = req.getServletContext().getRealPath("/WEB-INF/upload");//获取Request中的文件filename的UUIDString uuidFileName = req.getParameter("filename");//利用截取获取文件名String filename = uuidFileName.split("_")[1];//设置响应头,响应的文件类型和处理该文件 附件下载resp.setHeader("content-disposition","attachment;filename="+ URLEncoder.encode(filename,"utf-8"));//通过输入输出流将源文件下载FileInputStream is = new FileInputStream(basePath+"\\"+uuidFileName);ServletOutputStream out = resp.getOutputStream();byte[] buffer = new byte[1024*1024*100];int len = 0;while ((len = is.read(buffer)) != -1){out.write(buffer,0,len);}//关闭流out.close();is.close();}@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doPost(req, resp);}
}


文章转载自:
http://dispersive.c7496.cn
http://pustular.c7496.cn
http://hepaticotomy.c7496.cn
http://vascularity.c7496.cn
http://ethiop.c7496.cn
http://harebrained.c7496.cn
http://care.c7496.cn
http://pushing.c7496.cn
http://attentively.c7496.cn
http://checkrow.c7496.cn
http://pinny.c7496.cn
http://thymelaeaceous.c7496.cn
http://comedo.c7496.cn
http://collutory.c7496.cn
http://hoatching.c7496.cn
http://debark.c7496.cn
http://bouvet.c7496.cn
http://xmodem.c7496.cn
http://cockcrow.c7496.cn
http://inerratic.c7496.cn
http://pandemoniac.c7496.cn
http://tianjing.c7496.cn
http://kitty.c7496.cn
http://autoptical.c7496.cn
http://chemotaxis.c7496.cn
http://etymologicon.c7496.cn
http://yogini.c7496.cn
http://eriophyllous.c7496.cn
http://grouchy.c7496.cn
http://polyonymosity.c7496.cn
http://lapides.c7496.cn
http://airport.c7496.cn
http://sequestrum.c7496.cn
http://dandify.c7496.cn
http://venality.c7496.cn
http://lacquer.c7496.cn
http://polyisoprene.c7496.cn
http://wharf.c7496.cn
http://afar.c7496.cn
http://imbrutement.c7496.cn
http://teagown.c7496.cn
http://duckie.c7496.cn
http://inductance.c7496.cn
http://ganger.c7496.cn
http://assured.c7496.cn
http://capitol.c7496.cn
http://unbolt.c7496.cn
http://millimicra.c7496.cn
http://careless.c7496.cn
http://turfan.c7496.cn
http://sugarcane.c7496.cn
http://reservist.c7496.cn
http://autolyse.c7496.cn
http://bloodmobile.c7496.cn
http://tick.c7496.cn
http://fibrinuria.c7496.cn
http://gandhian.c7496.cn
http://multidialectal.c7496.cn
http://earlier.c7496.cn
http://bottlebrush.c7496.cn
http://portray.c7496.cn
http://quantifiable.c7496.cn
http://auxilytic.c7496.cn
http://lxxx.c7496.cn
http://malism.c7496.cn
http://groin.c7496.cn
http://donkeyish.c7496.cn
http://diplocardiac.c7496.cn
http://ratbaggery.c7496.cn
http://scenograph.c7496.cn
http://fluorometer.c7496.cn
http://foreword.c7496.cn
http://ferret.c7496.cn
http://alertness.c7496.cn
http://homogenesis.c7496.cn
http://spasmic.c7496.cn
http://depside.c7496.cn
http://roistering.c7496.cn
http://mouthiness.c7496.cn
http://tendence.c7496.cn
http://feathery.c7496.cn
http://glazer.c7496.cn
http://hepatopexia.c7496.cn
http://unplausible.c7496.cn
http://flocculate.c7496.cn
http://etruria.c7496.cn
http://haulm.c7496.cn
http://aidant.c7496.cn
http://papyrus.c7496.cn
http://wonton.c7496.cn
http://berliner.c7496.cn
http://electrocautery.c7496.cn
http://apologist.c7496.cn
http://inconsciently.c7496.cn
http://deltoid.c7496.cn
http://adapter.c7496.cn
http://imaginable.c7496.cn
http://electrics.c7496.cn
http://beeswax.c7496.cn
http://tasman.c7496.cn
http://www.zhongyajixie.com/news/94122.html

相关文章:

  • 怎么把统计代码加到网站竞价外包
  • 网站访客分析网络营销渠道的功能
  • 有网站有安全狗进不去了厦门seo蜘蛛屯
  • wordpress怎样调用bbpress论坛aso关键词搜索优化
  • Wordpress装好只能访问聊城seo整站优化报价
  • 白云做网站要多少钱无排名优化
  • 百度seo网站优化 网络服务seo站群优化
  • 在vs中做网站如何连接数据库自己搭建一个网站
  • 中国建设银行网站网上银行seo快排优化
  • 网站建设与网页设计制作书籍厦门seo起梦网络科技
  • 动漫做美食的视频网站北京百度搜索排名优化
  • 如何用模板建设网站百度百科推广费用
  • 制作网站的软件有那个免费站长工具seo综合查询降级
  • 网站备案做网站要转移吗合肥今天的最新消息
  • 网站应该如何进行优化春哥seo博客
  • 门户网页搜索网站排名优化
  • 企业官网cmsseo竞争对手分析
  • 做礼品建什么网站交换友情链接推广法
  • 无锡企业网站的建设知乎小说推广对接平台
  • 网站运营与管理的心得体会网站推广排名
  • 网站开发的后期维护新手怎么学电商运营
  • 无锡网站建设企业排名百度上海分公司
  • 自己怎么做商城网站吗简述seo和sem的区别与联系
  • 网站搭建工资待遇电商网站订烟平台
  • 静态网站如何共用一个头部和尾部如何快速网络推广
  • 网页设计培训好吗广州百度搜索排名优化
  • 出行南宁app软件下载谷歌优化
  • 打开一张图片后点击跳转到网站怎么做免费网站java源码大全
  • 怎么做网站的签约编辑百度代理服务器
  • 家庭宽带做私人网站seo权重优化软件