java三种方式实现文件的上传

2023-11-03

1:

实现文件的上传可以有好多途径,最简单的就是用sun公司提供的File类,可以简单的实现文件的上传和显示:

try {

InputStream stream = file.getInputStream();//把文件读入

Savefilepath = request.getRealPath("/upload");//将文件存放在当前系统路径的哪个文件夹下

Savefilename = getNewFilename(file.getFileName());

Savefilepath = Savefilepath + "\\" + Savefilename;

OutputStream bos = new FileOutputStream(Savefilepath);//建立一个上传文件的输出流

int bytesRead = 0;

byte[] buffer = new byte[10*1024];

while ( (bytesRead = stream.read(buffer, 0, 10240)) != -1) {

bos.write(buffer, 0, bytesRead);//将文件写入服务器的硬盘上

}

bos.close();

stream.close();

}catch(Exception e){

e.printStackTrace();

}

2:

简单的代码如下,于此同时有一个很简单的扩展的jspsmart很好用,他是封装好的一些上传的组建,做一些上传的优化,下面就是简单实现上传的例子:

上传页面:
<html>
 <head>
 <title>smartupload</title>
 </head>
 
 <body>
 <form action="smartupload02.jsp" method="post" enctype="multipart/form-data">
 上传的图片:<input type="file" name="pic">
 <input type="submit" value="上传">
 </form>
 </body>
</html>

处理页面:

<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>

<jsp:useBean id="smartupload" class="org.lxh.smart.SmartUpload"/>

<html>

<head>

<title>smartupload</title>

</head>

<body>

<%

smartupload.initialize(pageContext) ; // 初始化上传

smartupload.upload() ; // 准备上传

smartupload.save("upload") ; // 保存文件

%>

</body>

</html>

3:

最后就是servlet3.0的新特性里面的上传文件的新特性,他则是采用part来实现的,下面是简单的例子:

package com.simple;

import java.io.IOException;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import javax.servlet.http.Part;

import com.sun.xml.ws.wsdl.parser.Part;

public class uploadServlet extends HttpServlet {

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

request.setCharacterEncoding("utf-8");

Part part = request.getPath("file");

String name = part.getName();

String url = request.getSession().getServletContext().getRealPath("/upload");

String reqName = request.getHeader("content-disposition");

String fileName = reqName.substring(reqName.lastIndexOf("=")+2, reqName.length()-1);

part.write(url+"/"+fileName);

}

}

其实功能是一样的,要求也就是以实现功能为宗旨,但是多学习点东西总是好的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java三种方式实现文件的上传 的相关文章

随机推荐

  • VJ 4 Traveling

    C Traveling Time limit 2sec Memory limit 256MB Score 300 points Problem Statement AtCoDeer the deer is going on a trip i
  • docker默认配置文件不存在问题解决

    Docker默认的配置文件 etc default docker或者 etc sysconfig docker都不起作用 查看了一下 lib systemd system docker service文件 发现里面没有加载默认配置文件 一些
  • opencv,视频的操作

    http opencv python tutroals readthedocs io en latest py tutorials py gui py video display py video display html http doc
  • MySQL(51)MySQL LIKE:模糊查询

    MySQL LIKE 模糊查询 在 MySQL 中 LIKE 关键字主要用于搜索匹配字段中的指定内容 其语法格式如下 NOT LIKE 字符串 其中 NOT 可选参数 字段中的内容与指定的字符串不匹配时满足条件 字符串 指定用来匹配的字符串
  • 让我们的streamlit网页表格美起来的方法

    大家好 在我们的Streamlit交流群中经常听到小伙伴们吐槽Streamlit自带的表格样式太不友好了 不仅布局不好 如表格内容无法全部显示出来 每列的内容无法居中显示 主题色也不好看 表格行数信息从0开始不符合大家习惯等 针对这个问题
  • 休闲乐系统服务器更改,休闲乐系统服务器更改

    休闲乐系统服务器更改 内容精选 换一换 通过华为云创建的ECS服务器默认使用华为云提供的内网DNS进行解析 内网DNS不影响ECS服务器对公网域名的访问 同时 还可以不经Internet 直接通过内网DNS访问其他云上服务内部地址 如OBS
  • 解决git ssh -T git@github可以成功但无法clone

    解决git ssh T git github可以成功但无法clone git时可以链接成功 ssh T git github 但是clone时出错 提示无权限 如下 git github com Permission denied publ
  • $(" ").value的意思

    范例 var contSourceId contSourceId value 解读 最早出现在prototype js库里与document getElementById 类似 标签ID 返回那个标签的对象 实例
  • 使用cmake创建visual studio工程

    对于从网上拉取的C 代码 手动配置VS环境比较麻烦 使用cmake可以自动配置 这里使用一个简单的cmake配置hello cpp例子演示 前提环境 cmake vs2017 1 在某路径下创建一个文件夹名为test 注意 路径中不能有中文
  • 使用LVS+keepalived实现mysql负载均衡的实践和总结

    前言 经过一段时间的积累 数据库的架构就需要根据项目不断的进行变化 从单台数据库 到了两台数据库的主从 再到读写分离 再到双主 现在进一步需要更多的数据库服务器去支撑更加可怕的访问量 那么经过那么多的学习 也了解到 进一步的架构还有很多 负
  • jupyter中的%%time魔法函数和列表推导式有冲突

    搞了一个下午发现竟然是在jupyter中 time魔法函数和列表推导式不能同时使用 提示错误如下 但比较怪异的是将 time注释后成功运行 再恢复 time功能 竟然就没有异常了
  • 培训第二弹 全国大学生智能汽车竞赛百度竞速组预告

    3月12日本周六晚7点 百度飞桨B站直播间 第十七届全国大学生智能汽车竞赛完全模型组竞速赛第二次线上培训正式开讲 卓老师年前来百度科技园 检查作业 培训内容和学习资料筹备会 不放过每个细节 经过长期精心筹备 在3月12日晚7点飞桨B站直播间
  • 相似文本聚类

    聚类方法 原型聚类 原型是指样本空间中具有代表性的点 此类算法假设聚类结构能通过一组原型刻画 在现实聚类中极为常用 如 k means 高斯混合聚类 高斯混合聚类 层次聚类 层次聚类根据划分策略包括聚合层次聚类和拆分层次聚类 由于前者较后者
  • 2019年8月01日星期四 恒指/美原油/美黄金 走势分析

    财经早餐 2019年8月01日星期四 重点关注的财经数据与事件 02 00 美联储FOMC公布利率决议及政策声明 02 30 美联储主席鲍威尔召开新闻发布会 09 45 中国7月财新制造业PMI终值 15 50 法国7月制造业PMI终值 1
  • 一本读懂BERT(实践篇)

    目录 一 什么是BERT 二 BERT安装 三 预训练模型 四 运行Fine Tuning 五 数据读取源码阅读 一 DataProcessor 二 MrpcProcessor 六 分词源码阅读 一 FullTokenizer 二 Word
  • python基础-第一个python程序

    前言 上一章中 我们介绍了怎么去安装python环境 作为我们入门python的先决条件 今天 我们通过编写第一个python应用程序的方式 正式进入python的大门 首先 关于python 有两种打开方式 一种是shell命令行 一种是
  • mygui中文输入及显示

    更改配置文件MyGUI3 0 Media MyGUI Media下 core font xml添加
  • 这是最简单的java输出表情

    public static void main String args TODO Auto generated method stub System out println o 执行结果 不要质疑欧 我们java就是这么简单 适合刚入jav
  • 【面试总结】AI音频降噪方向相关面试题总结

    前情提要 相同的内容我也发布在了知乎上 由于本人也参与过AI音频降噪的相关项目 所以在面试的过程中也有很多相关的问题 这里提前吐槽一下 虽然Rnnoise这个模型效果不怎么好 但是这个方案相当于是这个领域的开辟的工程方案 所以有相当多的人会
  • java三种方式实现文件的上传

    1 实现文件的上传可以有好多途径 最简单的就是用sun公司提供的File类 可以简单的实现文件的上传和显示 try InputStream stream file getInputStream 把文件读入 Savefilepath requ