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

手机网站 微信支付百度seo公司哪家好一点

手机网站 微信支付,百度seo公司哪家好一点,端州网站建设,莆田个人外贸网站建设SmartUpload 简介 SmartUpload组件是www.jspsmart.com网站开发的一套上传组件,它使用简单,方便。有以下几个特点: 使用简单。在JSP中仅仅书写三五行java代码就可以搞定文件的上传或下载。 能全程控制上传。利用SmartUpload组件提供的对象及其…

SmartUpload 简介


SmartUpload组件是www.jspsmart.com网站开发的一套上传组件,它使用简单,方便。有以下几个特点:
使用简单。在JSP中仅仅书写三五行java代码就可以搞定文件的上传或下载。
能全程控制上传。利用SmartUpload组件提供的对象及其操作方法,
可以获得全部上传文件的信息(包括文件名,大小,类型,扩展名,文件数据等),方便存取
下载灵活。仅写两行代码,就能把Web服务器变成文件服务器。
不管文件在Web服务器的目录下或在其他任何目录下,都可以使用SmartUpload进行下载。SmartUpload本身是一个系统提供的jar包,用户直接将此包复制到TOMCAT_HOME\lib目录下即可。
SmartUpload组件提供方网站已经关闭。
不过,由于SmartUpload在非框架的开发中较为好用,所以直到今天还有开发者继续使用。

上传单个文件


要进行上传,则必须使用HTML中提供的file控件,而且也必须使用enctype属性进行封装。

对于上传文件的FORM表单,有两个要求:1、METHOD应用POST,即METHOD=“POST”。2、增加属性:ENCTYPE="multipart/form-data"

<body><form action=“SmartUpload01.jsp” method=“post” enctype=“multipart/form-data”>               //对表单进行封装 上传的图片:<input type="file" name="pic"><input type="submit" value="上传"></form></body> 

完成上传的步骤:

1.实例化SmartUpload对象;
2.初始化上传的操作;
3.准备上传;
4.保存文件。
<%
SmartUpload smart = new SmartUpload();    //实例化SmartUpLoad上传组件
smart.initialize(pageContext);            //初始化上传操作
smart.upload();                                  //上传准备
smart.save("upload");                     //将上传文件保存到upload文件夹中 
%>

举例:

upload_1.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body><form action="doUpload_1.jsp" method="post" enctype="multipart/form-data"> 上传的图片:<input type="file" name="pic"><br><input type="submit" value="上传"></form></body>
</html>

doUpload_1.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><%@ page import="com.jspsmart.upload.*" %>  <!-- 将jar包导进来 --><!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body><%SmartUpload smart = new SmartUpload();smart.initialize(pageContext);  //初始化上传smart.upload();  //上传准备smart.save("upload");//将文件保存到服务器相应目录下"/Library/apache-tomcat-8.5.64/webapps/Servlet_Higher/upload"out.print("文件上传成功");
%></body>
</html>

注意:
<%@ page import=“com.jspsmart.upload.*” %> 一定要记得导入jar包所在的位置

在这里插入图片描述
在这里插入图片描述

运行结果:
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

此时,文件已经上传到了/Library/apache-tomcat-8.5.64/webapps/Servlet_Higher/upload"路径下,然后在此路径下的upload文件夹下查看是否文件已经上传到这里面
在这里插入图片描述
我们可以发现,此时我已经将文件成功的上传到了upload文件夹中,可能有些人发现自己运行成功了,但是图片并没有成功的上传,这是为什么?
首先:对于Tomcat的路径配置问题,双击点开Servers下面的Tomcat,我们可以查看配置路径。

在这里插入图片描述
对于上面的路径,需要是你安装的Tomcat所在的路径下的webapps文件夹下
其次,如果你仍然没有看到图片的上传,那有可能你还没有upload文件夹,你需要手动建立一个文件夹,而且必须在eclipse下项目中创建一个upload文件夹

在这里插入图片描述
这样,所有的问题就可以解决了。
在这里插入图片描述

当然上面的文件可以使用Servlet文件进行代替,如下:
upload_1.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body><form action="uploadServlet1" method="post" enctype="multipart/form-data">上传的图片:<input type="file" name="pic"><br><input type="submit" value="上传"></form></body>
</html>

UploadServlet_1.java

package cn.servlet;import java.io.IOException;
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 com.jspsmart.upload.SmartUpload;
import com.jspsmart.upload.SmartUploadException;/*** Servlet implementation class UploadServlet_1*/
@WebServlet("/up_load/uploadServlet1")
public class UploadServlet_1 extends HttpServlet {private static final long serialVersionUID = 1L;/*** @see HttpServlet#HttpServlet()*/public UploadServlet_1() {super();// TODO Auto-generated constructor stub}/*** @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)*/protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {SmartUpload smart = new SmartUpload();smart.initialize(this.getServletConfig(), request, response);//初始化上传try {smart.upload();smart.save("upload");//保存文件到服务器相应文件夹} catch (ServletException | IOException | SmartUploadException e) {// TODO Auto-generated catch blocke.printStackTrace();}//准备上传}/*** @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)*/protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stubdoGet(request, response);}}

上面的代码也可以将图片上传到上传到upload文件夹中
注意把jar包导入!!!➡️import com.jspsmart.upload.*;


混合表单


表单一旦封装之后,就无法使用request.getParameter()接收参数了,
因为表单被封装了,所有的数据不再是文本数据了,而是二进制的byte流了,
这时必须使用SmartUpload中提供的方法支持。
smart.getRequest().getParameter("uname");

upload_2.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body><form action="doUpload_2.jsp" method="post" enctype="multipart/form-data" >姓名:<input type="text" name="username"><br>图片:<input type="file" name="pic"><br> <input type="submit" value="提交"><input type="reset" value="重置">
</form></body>
</html>

doUpload_2.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><%@ page import="com.jspsmart.upload.*" %>  <!-- 将jar包导进来 --><!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body><%SmartUpload smart = new SmartUpload();smart.initialize(pageContext);  //初始化上传smart.upload();  //上传准备String uname = smart.getRequest().getParameter("username");//out.print("文件上传成功");//out.print("姓名:"+uname);uname = uname + "." + smart.getFiles().getFile(0).getFileExt();//➕的最后面的是用来获取多个文件中的第一个文件的扩展名String fileName = this.getServletContext().getRealPath("/")+"upload/"+uname;smart.getFiles().getFile(0).saveAs(fileName);//按照文件名上传
%>
路径:<%=fileName %>
<img src="../upload/<%=uname%>" width="200px"></body>
</html>

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


为上传文件自动命名


如果多个用户上传的文件的名称一样,则肯定会发生覆盖的情况。
为了解决这种问题,可以采用为上传文件自动命名的方式,为防止重名,自动命名可采用如下的格式:
IP地址+时间戳+三位随机数
sessionId+时间戳

upload_3.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body><form action="doUpload_3.jsp" method="post" enctype="multipart/form-data">照片1:<input type="file" name="pic1"><br>照片2:<input type="file" name="pic2"><br>照片3:<input type="file" name="pic3"><br><input type="submit" value="上传"><input type="reset" value="重置">
</form></body>
</html>

doUpload_3.jsp

<%@page import="cn.upload.utils.IPTimeStamp"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><%@ page import="com.jspsmart.upload.*" %>  <!-- 将jar包导进来 -->
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body><%SmartUpload smart = new SmartUpload();smart.initialize(pageContext);  //初始化上传smart.upload();  //上传准备//首先要获取IP地址IPTimeStamp its = new IPTimeStamp(request.getRemoteAddr());//获取客户端(上传端)IP地址System.out.println("IP地址:"+request.getRemoteAddr());for(int x =0 ; x<smart.getFiles().getCount();x++){String ext = smart.getFiles().getFile(x).getFileExt(); //获取上传文件的扩展名String filName = its.getIPTimeRandom()+"."+ext;	//生成上传文件的完整的用户名String pathName = this.getServletContext().getRealPath("/")/*获取项目的根目录*/+"upload"+java.io.File.separator+filName;smart.getFiles().getFile(x).saveAs(pathName);}out.print("上传文件成功!");%></body>
</html>

工具类:IPTimeStamp.java

package cn.upload.utils;import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;public class IPTimeStamp {private SimpleDateFormat sdf = null;//时间戳private String ip = null;//ip地址public IPTimeStamp() {super();}public IPTimeStamp(String ip) {super();this.ip = ip;}public String getTimeStamp() {//获取时间戳this.sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");return this.sdf.format(new Date());}public String addZero(String str , int len ) {//把IP地址分割几部分 再填充StringBuffer s = new StringBuffer();s.append(str);while(s.length()<len) {s.insert(0, "0");}return s.toString();}public String getIPTimeRandom() {StringBuffer buf = new StringBuffer();if(this.ip!=null) {String s[] = this.ip.split("\\:");for(int i = 0 ; i < s.length ; i++ ) {buf.append(this.addZero(s[i], 3));}}buf.append(this.getTimeStamp());Random r = new Random();for(int i = 0 ; i < 3 ; i++ ) {buf.append(r.nextInt(10));//生成一个小于10的随机数}return buf.toString();}}

注意:
分割IP地址的方法,用什么来分割IP地址呢?
首先,我们需要获取IP地址,将其输出
System.out.println(“IP地址:”+request.getRemoteAddr());

在这里插入图片描述
我们发现IP地址使用的是“:”进行分开的,所以分割IP地址的时候要使用“:”

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


SmartUpload主要类和方法


File类:

这个类包装了一个上传文件的所有信息。通过它,可以得到上传文件的文件名、文件大小、扩展名、文件数据等信息 。public void saveAs( java.lang.String destFilePathName)
作用:将文件换名另存。public boolean isMissing() 
作用:这个方法用于判断用户是否选择了文件,也即对应的 表单项是否有值。选择了文件时,它返回 false 。未选文件时,它返回 true 。public String getFieldName()
作用:取 HTML 表单 中对应于此上传文件的 表单 项的名字。 public String getFileName() 
作用:取文件名(不含目录信息) public String getFilePathName  作用:取文件全名(带目录)public int getSize()   作用:取文件长度(以字节计)

Files 类

这个类表示所有上传文件的集合,通过它可以得到上传文件的数目、大小等信息。public int getCount()   作用:作用:取得上传文件的数目。 public File getFile(int index) 
作用:取得指定位移处的文件对象 File (这是 com . JS Psmart.upload.File ,不是 JAVA .io.File ,注意区分)。其中, index 为指定位移,其值在 0 到 getCount()-1 之间。public long getSize()
作用:取得上传文件的总长度,可用于限制一次性上传的数据量大小public String getFileName()  作用:取文件名(不含目录信息) public String getFilePathName  作用:取文件全名(带目录)public int getSize()   作用:取文件长度(以字节计)

SmartUpload类

完成上传下载工作public final void initialize( JAVA x. servlet . JS P.PageContext pageContext)
作用:执行上传下载的初始化工作,必须第一个执行。public void upload()  作用:上传文件数据public int save(String destPathName)  
作用:将全部上传文件保存到指定目录下,并返回保存的文件个数。public int getSize()  作用:取上传文件数据的总长度原型public Files getFiles()
作用:取全部上传文件,以 Files 对象形式返回,可以利用 Files 类的操作方法来获得上传文件的数目等信息。public Request get Request ()   作用:取得 Request 对象。public void setAllowedFilesList(String allowedFilesList) 作用:设定允许上传带有指定扩展名的文件,当上传过程中有文件名不允许时,组件将抛出 异常 。 	allowedFilesList 为允许上传的文件扩展名列表,各个扩展名之间以逗号分隔。如果想允许上传那些没有扩展名的文件,可以用两个逗号表示。public void setDeniedFilesList(String deniedFilesList)   
作用:用于限制上传那些带有指定扩展名的文件。public void setMaxFileSize(long maxFileSize)  
作用:设定每个文件允许上传的最大长度。 public void setTotalMaxFileSize(long totalMaxFileSize)  
作用:设定允许上传的文件的总长度,用于限制一次性上传的数据量大小。//设定上传限制  //限制每个上传文件的最大长度;将最大设定为1024*1024*20  smartUpload.setMaxFileSize(1024*1024*10);     //限制总上传数据的长度  smartUpload.setTotalMaxFileSize(1024*1024*20);  //限制允许上传的文件类型、允许doc、txt、bat文件  smartUpload.setAllowedFilesList("doc,txt,bat");  //限制禁止上传的文件类型,禁止exe、jsp、和没有扩展名的文件  smartUpload.setDeniedFilesList("exe,jsp,,");  //上传文件  smartUpload.upload();  //将文件保存到指定的目录下  smartUpload.save(path); 

SmartUpload文件下载


download_1.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body><form action="downloadServlet" method="post" enctype="multipart/form-data">下载文件:<a href="../down/1.jpg">电子商城使用说明书</a><input type="submit" name="down" value="下载">
</form></body>
</html>

DownloadServlet.java

package cn.servlet;import java.io.IOException;
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 com.jspsmart.upload.SmartUpload;
import com.jspsmart.upload.SmartUploadException;/*** Servlet implementation class DownloadServlet*/
@WebServlet("/up_load/downloadServlet")
public class DownloadServlet extends HttpServlet {private static final long serialVersionUID = 1L;/*** @see HttpServlet#HttpServlet()*/public DownloadServlet() {super();// TODO Auto-generated constructor stub}/*** @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)*/protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {String url = request.getServletContext().getRealPath("/")+"down/1.jpg";SmartUpload smart = new SmartUpload();smart.initialize(getServletConfig(),request,response);smart.setContentDisposition(null);try {smart.downloadFile(url);} catch (ServletException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (SmartUploadException e) {// TODO Auto-generated catch blocke.printStackTrace();}}/*** @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)*/protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stubdoGet(request, response);}}

在这里插入图片描述
当点击下载后,谷歌浏览器就开始下载:
在这里插入图片描述

http://www.fp688.cn/news/164645.html

相关文章:

  • 官网网站开发框架外链网址
  • 做外贸哪个网站好google下载手机版
  • 潍坊网站建设客服企业营销模式
  • 深圳专业做网站案例百度站长平台网址
  • 八大装修风格有哪些上海百度推广优化公司
  • 单页站如何做网站seo优化苏州关键词优化排名推广
  • 设计网官方网站推广方式营销方案
  • 抖音头像的网站制作教程新媒体运营哪个培训机构好
  • 专做动漫的网站百度搜索网址大全
  • 江苏哪家做网站排名比较好在线推广企业网站的方法
  • 腾讯企业邮箱官网登录入口网页版灰色词优化培训
  • seo综合查询国产大连seo建站
  • 新浪网站首页高手优化网站
  • 堵博网站建设浙江关键词优化
  • 网站电子商务平台建设网络营销师培训
  • 企业建设网站磁力猫torrentkitty官网
  • 深圳网站建设最专业搜索引擎在线观看
  • 专注河南网站建设应用商店关键词优化
  • 做销售如何在网站上搜集资料拼多多网店代运营要多少费用
  • 网站因该怎么做参考文献百度推广营销方案
  • 成都网站建设哪家网页制作软件有哪些
  • 网站建设文献广州seo顾问seocnm
  • 品牌型网站建设解决方案武汉seo招聘网
  • wordpress 个人 主题免费网站排名优化在线
  • 漂亮的幼儿园网站模板b2b电子商务网站都有哪些
  • 成都网站建设名录百度官网认证多少钱
  • 织梦网站地图怎么做sitemap.xml头条今日头条新闻头条
  • 做网站潍坊seo综合查询工具
  • 古典asp网站源码星巴克网络营销案例分析
  • 海外建站推广中国百强县市榜单