网站模板库
  • 首页
  • web前端工具
    • HTML/JS转换工具
    • JS/HTML格式化工具
    • 字母/英文大小写转换工具
    • robots.txt文件生成工具
    • Js压缩/格式化工具
    • Css在线压缩工具_代码格式化
  • 关于我们
    • 免责声明
    • 联系我们
    • 广告服务
    • 服务项目
    • 关于我们
    • 网站轮播
    • 公告
    • 成都优优科技专用
    • 按行业分类
  • web学院
    • 服务器教程
    • 学习资料
      • 基础书籍
      • 交互书籍
      • 入门教程
      • 特效分类
    • 案例分享
    • web资讯
  • 网页特效
    • 图片特效
    • 导航特效
    • 滑动按钮
    • 表单特效
    • 文字特效
    • 弹窗特效
    • 其他特效
  • 织梦模板
    • 科技/电子/数码/通信
    • 文化/艺术/广告/传媒
    • 装修/设计/家居/家具
    • 基建/施工/地产/物业
    • 餐饮/酒店/旅游/票务
    • 食品/果蔬/饮料/日用
    • 服饰/珠宝/礼品/玩具
    • 摄影/婚庆/家政/生活
    • 运动/健身/体育/器材
    • 学校/教育/培训/科研
    • 美容/保健/医院/医疗
    • 金融/财税/咨询/法律
    • 政府/组织/集团/协会
    • 汽车/物流/交通/搬运
    • 机械/设备/制造/仪器
    • 化工/环保/能源/材料
    • 农业/畜牧/养殖/宠物
    • 其他模版
    • IT/软件/信息/互联网
  • 手机模板
    • 手机APP模板
    • 微信小程序模板
    • wap
  • 网站模板
    • joomla模板
    • Drupal模板
    • z-blog模板
    • EyouCms模板
    • Bootstrap模板
    • 帝国cms模板
    • CmsEasy模板
    • MetInfo模板
    • 购物商城模板
      • Shopify主题
      • PrestaShop主题
    • 后台模板
    • 纯HTML模板
    • ecshop模板
    • phpwind模板
    • pbootcms模板
    • phpcms模板
    • wordpress模板
    • discuz模板
  • 教程
    • 织梦教程
    • Discuz教程
    • WordPress教程
    • Phpcms教程
    • Phpwind教程
    • ECShop教程
    • Joomla教程
    • Drupal教程
    • zblog教程
    • EyouCMS教程
    • 帝国cms教程
    • MetInfo教程
    • CmsEasy教程
登录
当前位置:网站模板库 > web学院 > 服务器教程 > java 如何只通过后台把本地的图片上传的服务器上去?
商业源码 服务器教程 2024-02-09 10:00:01

java 如何只通过后台把本地的图片上传的服务器上去?

java 如何只通过后台把本地的图片上传的服务器上去?,第1张

这里你弄错了一个问题;\x0d\你的程序是要传递的二进制数据\x0d\而不是传递路径,然后再到服务器读取文件数据(你的服务器有这个文件)\x0d\只有当你的服务器下有这个文件了,你传递一个路径,读取是可以的\x0d\//---\x0d\关于如何上传文件, 自己google一下,很多教程

String realpath = ServletActionContextgetServletContext()getRealPath("/upload") ;//获取服务器路径

        String[] targetFileName = uploadFileName;

        for (int i = 0; i < uploadlength; i++) {

           File target = new File(realpath, targetFileName[i]);

              FileUtilscopyFile(upload[i], target); 

              //这是一个文件复制类copyFile()里面就是IO操作,如果你不用这个类也可以自己写一个IO复制文件的类    

         } 

其中private File[] upload;// 实际上传文件

    private String[] uploadContentType; // 文件的内容类型

    private String[] uploadFileName; // 上传文件名

这三个参数必须这样命名,因为文件上传控件默认是封装了这3个参数的,且在action里面他们应有get,set方法!

环境准备

  1. 下载并安装Tomcat(已经有很多关于Tomcat安装以及使用的文章,在这里不再介绍);

  2. 下载File upload的jar包commons-fileupload-10-beta-1jar,并将该文件拷贝到{$TOMCAT}/common/lib目录下(其中{$TOMCAT}为Tomcat的安装目录);

  3. 由于Fileupload子项目同时要用到另外一个项目commons-Beanutils,所以必须下载Beanutils,并将解压后的文件commons-beanutilsjar拷贝到{$TOMCAT}/common/lib目录下。

  开发文件上传页面

  文件上传的界面如图1所示。为了增加效率我们设计了三个文件域,同时上传三个文件。

  图1 文件上传界面

  页面的HTML代码如下:

<html>

<head>

<title>文件上传演示</title>

</head>

<body bgcolor=“#FFFFFF”text=“#000000” leftmargin=“0”topmargin=“40”marginwidth=“0” marginheight=“0”>

<center>

<h1>文件上传演示</h1>

<form name=“uploadform”method=“POST” action=“savejsp”ENCTYPE=“multipart/form-data”>

<table border=“1”width=“450”cellpadding=“4” cellspacing=“2”bordercolor=“#9BD7FF”>

<tr><td width=“100%”colspan=“2”>

文件1:<input name=“file1”size=“40”type=“file”>

</td></tr>

<tr><td width=“100%”colspan=“2”>

文件2:<input name=“file2”size=“40”type=“file”>

</td></tr>

<tr><td width=“100%”colspan=“2”>

文件3:<input name=“file3”size=“40”type=“file”>

</td></tr>

</table>

<br/><br/>

<table>

<tr><td align=“center”><input name=“upload” type=“submit”value=“开始上传”/></td></tr>

</table>

</form>

</center>

</body>

</html>

  代码中要特别注意的是黑体处。必须保证表单的ENCTYPE属性值为multipart/form-data,这样浏览器才能正确执行上传文件的操作。

  处理上传文件信息

  由于本文主要是讲述如何使用Commons-fileupload,所以为了便于修改、调试,上传文件的保存使用一个JSP文件来进行处理。我们将浏览器上传来的所有文件保存在一个指定目录下并在页面上显示所有上传文件的详细信息。保存页面处理结果见图2所示。

  图2 保存页面

  下面来看看savejsp的代码:

<%

/

演示文件上传的处理

@author <a href=“mailto:winterlau@163com”>Winter Lau</a>

@version $Id: savejsp,v 100 2003/03/01 10:10:15

/

%>

<%@ page language=“java”contentType=“text/html;charset=GBK”%>

<%@ page import=“javautil”%>

<%@ page import=“orgapachecommonsfileupload”%>

<html>

<head>

<title>保存上传文件</title>

</head>

<%

String msg = “”;

FileUpload fu = new FileUpload();

// 设置允许用户上传文件大小,单位:字节

fusetSizeMax(10000000);

// maximum size that will be stored in memory

// 设置最多只允许在内存中存储的数据,单位:字节

fusetSizeThreshold(4096);

// 设置一旦文件大小超过getSizeThreshold()的值时数据存放在硬盘的目录

fusetRepositoryPath(“C:\\TEMP”);

//开始读取上传信息

List fileItems = fuparseRequest(request);

%>

<body bgcolor=“#FFFFFF”text=“#000000” leftmargin=“0”topmargin=“40”marginwidth=“0” marginheight=“0”>

<font size=“6”color=“blue”>文件列表:</font>

<center>

<table cellpadding=0 cellspacing=1 border=1 width=“100%”>

<tr>

<td bgcolor=“#008080”>文件名</td>

<td bgcolor=“#008080”>大小</td>

</tr>

<%

// 依次处理每个上传的文件

Iterator iter = fileItemsiterator();

while (iterhasNext()) {

FileItem item = (FileItem) iternext();

//忽略其他不是文件域的所有表单信息

if (!itemisFormField()) {

String name = itemgetName();

long size = itemgetSize();

if((name==null||nameequals(“”)) && size==0)

continue;

%>

<tr>

<td><%=itemgetName()%></td>

<td><%=itemgetSize()%></td>

</tr>

<%

//保存上传的文件到指定的目录

name = namereplace(‘:’,‘_’);

name = namereplace(‘\\’,‘_’);

itemwrite(“F:\\”+ name);

}

}

%>

</table>

<br/><br/>

<a href=“uploadhtml”>返回上传页面</a>

</center>

</body>

</html>

  在这个文件中需要注意的是FileUpload对象的一些参数值的意义,如下面代码所示的三个参数sizeMax、sizeThreshold、repositoryPath:

FileUpload fu = new FileUpload();

// 设置允许用户上传文件大小,单位:字节

fusetSizeMax(10000000);

// maximum size that will be stored in memory

// 设置最多只允许在内存中存储的数据,单位:字节

fusetSizeThreshold(4096);

// 设置一旦文件大小超过getSizeThreshold()的值时数据存放在硬盘的目录

fusetRepositoryPath(“C:\\TEMP”);

  这3个参数的意义分别为:

  SizeMax 用来设置上传文件大小的最大值,一旦用户上传的文件大小超过该值时将会抛出一个FileUploadException异常,提示文件太大;

SizeThreshold 设置内存中缓冲区的大小,一旦文件的大小超过该值的时候,程序会自动将其它数据存放在repositoryPath指定的目录下作为缓冲。合理设置该参数的值可以保证服务器稳定高效的运行;

  RepositoryPath 指定缓冲区目录。

  使用注意事项

  从实际应用的结果来看该模块能够稳定高效的工作。其中参数SizeThreshold的值至关重要,设置太大会占用过多的内存,设置太小会频繁使用硬盘作为缓冲以致牺牲性能。因此,设置该值时要根据用户上传文件大小分布情况来设定。例如大部分文件大小集中在100KB左右,则可以使用100KB作为该参数的值,当然了再大就不合适了。使用commons-fileupload来处理HTTP文件上传的功能模块很小,但是值得研究的东西很多。

文件 文件大小 上传 文件上传 上传文件
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » java 如何只通过后台把本地的图片上传的服务器上去?

商业源码 钻石

分享到:
上一篇
第5章:Web 服务器
下一篇
国产的有哪些主要的芯片公司?

相关推荐

如何设置网络加密锁在远程也能使用

如何设置网络加密锁在远程也能使用

如何用VLC接收不同视频格式(H263、H264 CIF 4CIF)的组播媒体流

如何用VLC接收不同视频格式(H263、H264 CIF 4CIF)的组播媒体流

dellr730 h330mini组的raid5初始化过,然后安装ESXI6.0后磁盘速度很慢

dellr730 h330mini组的raid5初始化过,然后安装ESXI6.0后磁盘速度很慢

网吧监控控制器与中心服务器连接中断

网吧监控控制器与中心服务器连接中断

0条评论

发表评论 取消回复

要发表评论,您必须先登录。

提供最优质的资源集合

立即查看 了解详情
网站模板库

主题/付费下载/查看/余额管理/自定义积分,集成支付,卡密,推广奖励等。

本站导航
  • 链接标题
友情链接
  • 链接标题
快速搜索
本站由钛宇宙强力驱动
友情链接:
    商业源码网蜀ICP备2023005044号
    网站模板库
    • 登录
    • 注册
    网站模板库
    • 首页
    • web前端工具►
      • HTML/JS转换工具
      • JS/HTML格式化工具
      • 字母/英文大小写转换工具
      • robots.txt文件生成工具
      • Js压缩/格式化工具
      • Css在线压缩工具_代码格式化
    • 关于我们►
      • 免责声明
      • 联系我们
      • 广告服务
      • 服务项目
      • 关于我们
      • 网站轮播
      • 公告
      • 成都优优科技专用
      • 按行业分类
    • web学院►
      • 服务器教程
      • 学习资料►
        • 基础书籍
        • 交互书籍
        • 入门教程
        • 特效分类
      • 案例分享
      • web资讯
    • 网页特效►
      • 图片特效
      • 导航特效
      • 滑动按钮
      • 表单特效
      • 文字特效
      • 弹窗特效
      • 其他特效
    • 织梦模板►
      • 科技/电子/数码/通信
      • 文化/艺术/广告/传媒
      • 装修/设计/家居/家具
      • 基建/施工/地产/物业
      • 餐饮/酒店/旅游/票务
      • 食品/果蔬/饮料/日用
      • 服饰/珠宝/礼品/玩具
      • 摄影/婚庆/家政/生活
      • 运动/健身/体育/器材
      • 学校/教育/培训/科研
      • 美容/保健/医院/医疗
      • 金融/财税/咨询/法律
      • 政府/组织/集团/协会
      • 汽车/物流/交通/搬运
      • 机械/设备/制造/仪器
      • 化工/环保/能源/材料
      • 农业/畜牧/养殖/宠物
      • 其他模版
      • IT/软件/信息/互联网
    • 手机模板►
      • 手机APP模板
      • 微信小程序模板
      • wap
    • 网站模板►
      • joomla模板
      • Drupal模板
      • z-blog模板
      • EyouCms模板
      • Bootstrap模板
      • 帝国cms模板
      • CmsEasy模板
      • MetInfo模板
      • 购物商城模板►
        • Shopify主题
        • PrestaShop主题
      • 后台模板
      • 纯HTML模板
      • ecshop模板
      • phpwind模板
      • pbootcms模板
      • phpcms模板
      • wordpress模板
      • discuz模板
    • 教程►
      • 织梦教程
      • Discuz教程
      • WordPress教程
      • Phpcms教程
      • Phpwind教程
      • ECShop教程
      • Joomla教程
      • Drupal教程
      • zblog教程
      • EyouCMS教程
      • 帝国cms教程
      • MetInfo教程
      • CmsEasy教程

      弹窗标题

      这是一条网站公告,可在后台开启或关闭,可自定义背景颜色,标题,内容,用户首次打开关闭后不再重复弹出,此处可使用html标签...