文档章节

smartupload实现文件上传

secondriver
 secondriver
发布于 2015/09/17 09:26
字数 832
阅读 22
收藏 0

    还是遵循以往的学习方法,搭建自己的java知识体系,努力提高学习的能力。在java世界里面存在着很多开源的东西,新技术,新产品随时都可能到来。JavaSE算是有一个非常不错的API,但是还有大多数的开源Jar包没能有一个很好的组织格式的开发文档,因此自学起来非常不易,所以尝试了一下使用Smartupload组件。


    首先要说的是网上到处都是jspsmartupload和smartupload的包和讲解问档。多数都是直接将其中的类简单的描述了一些,个人觉得这些对于熟悉java开发的人来说,用处不大。

    还有一个问题是:关于smartupload的包放在什么地方。 在开发工具中如MyEclipse或者Eclipse中Build-path然后Configure-build-path然后add-extends-jar这样就可以了。至于在Tomcat目录下的复杂配置查看此文 

    图片上传最终还是成功了,使用的是魔乐科技李兴华老师提供的smartupload包。



  上传文件的步骤:

      1.实例化SmartUpLoad实例

      2.初始化上传操作

      3.准备上传文件

      4.上传文件

   在jsp页面导入包特别重要。



  
  1. <%@ page language="java" import="java.util.*" pageEncoding="GB2312"%> 
  2. <%@ page language="java" import="org.lxh.smart.*" %> 
  3. <%@ page language="java" import="java.io.File"%> 
  4. <%@ page language="java" import="org.lxh.servlet.*" %> 

   文件上传可以是单个文件也可以是多个文件,至于方法的使用在开发工具中虽然不能看到源代码,但是每一个类的方法和属性都是可以看到了,结合JavaSE的API基本上都可以猜测和测试出每一个方法的基本功能,还有谷歌和百度在手边问题迎刃而解。



  还是遇到了一些问题:

  1.文件存放的路径,Web服务器的Webpps目录下用户自己建立的上传文件存储目录

  2.获得上传文件的目录:

   


  
  1. String realPath = application.getRealPath(File.separator 
  2.                     + File.separator + "upload" + File.separator 
  3.                     + File.separator); 
  4.             System.out.println(realPath); 

  3.还可以直接使用新建的上传文件目录即可。

  


  
  1. smart.save(realPath); 
  2.             //smart.save("upload"); 

  同样可以通过。

  4.上传文件时同名文件会覆盖,解决办法是对每一个上传文件重命名。可以使用时间,IP,随机数共同产生一个字符串来作为文件名

  5.在smartupload

   


  
  1. <%@ page language="java" import="org.lxh.smart.File"%> 
  2. <%@ page language="java" import="org.lxh.smart.Files"%> 
  3. <%@ page language="java" import="org.lxh.servlet.*"%> 

 有File和Files类,因为在生成新的文件名时使用到了File.separator导致文件操作不正确,知识问题出现是因为导入包是出现了同名类,使用java.io.File.separator最终解决了该问题。

 6.产生新的文件名标识和文件上传的文件路径

  


  
  1. //获取上传的文件的扩展名 
  2.                 File f=fs.getFile(i); 
  3.                 String ext = f.getFileExt(); 
  4.                 //使用时间戳生成的文件名 
  5.                 String upFileName = its.getIPTimeRand(); 
  6.                 //使用原文件的扩展名,上传后的文件全名 
  7.                 String realFileName = upFileName +"."+ ext; 
  8.                 System.out.println(realFileName); 
  9.                 System.out.println(this.getServletContext().getRealPath("/") + "upload" 
  10.                                 + java.io.File.separator + realFileName); 

 使用到时间戳标识来产生一个唯一表示文件的文件名。


7.在网上看到一篇文章中写到使用Smartupload包但是使用的方法很多在在smartupload包中没能找。

8.http://www.jspsmartupload.com网站已经关闭。

本文出自 “野马红尘” 博客,谢绝转载!

© 著作权归作者所有

共有 人打赏支持
secondriver
粉丝 10
博文 229
码字总数 233821
作品 0
广州
程序员
私信 提问
java使用smartupload组件实现文件上传的方法

本文实例讲述了java使用smartupload组件实现文件上传的方法。分享给大家供大家参考。具体分析如下:文件上传几乎是所有网站都具有的功能,用户可以将文件上传到服务器的指定文件夹中,也可以...

关河
2016/02/04
461
0
Smartupload的使用

1.主要功能是完成上传操作,如果想要上传的话,则直接使用html表单中的file元素即可。 例如: 常见的长传组件就是Smartupload、ApacheFileUpload 2.使用SmartUpload 上传文件 范例:编写一个...

李茂冉
2016/05/18
29
0
SmartUpload实现文件的上传与下载

1.文件上传页面端的配置 页面端的encode:gbk 设置 enctype:”multipart/form-data” public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletExceptio......

西米火山
2016/12/21
17
0
几种上传文件组件的性能比较

近两天来由于项目需要使用上传组件,于是我仔细分析了Cos和FileUpload的源代码,并对它们的性能进行了测试比较,使用2M、20M、45M、200M的上传大小测试三种组件所花费的时间(单位为ms)结果...

oschina
2008/09/09
13.8K
15
Java中,当表单含有文件上传时,提交数据的如何读取

当提交表单里包含文件上传的时候,即Form的enctype属性值为multipart/form-data时,后台是无法像普通表单那样通过request.getParameter来获取用户提交的数据的。(说实话,我经常因为忘记这个...

肖歌
2016/05/10
86
0

没有更多内容

加载失败,请刷新页面

加载更多

多命令链命令参数

Commands: --install <link> <name> <path> <priority> [--slave <link> <name> <path>] ... 在系统中加入一组替换项. --remove <name> <path> 从 <名......

Pulsar-V
25分钟前
0
0
【转】go get命令使用socket代理

由于某些不可描述的原因,国内使用go get命令安装某些包的时候会超时导致失败,比如net包、sys包、tools包等。第一种解决办法就是自己从git上下载后添加链接到GOPATH中,比如: 1234...

yiduwangkai
27分钟前
0
0
Windows同步对象Event和Linux的条件变量

最近在看一些同步对象模拟的东东,特别对在Windows下如何模拟条件变量折腾了很久。 1 Windows同步对象Event 微软有一个很有意思的同步对象,某种程度上和Linux的条件变量很相似。但秉承微软一...

shzwork
35分钟前
1
0
从上往下打印出二叉树的每个节点,同层节点从左至右打印。

//第一种做法 public class Solution { public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) { ArrayList <Integer> li=new ArrayList<Integer>(); ArrayList <TreeN......

南桥北木
44分钟前
1
0
linux 服务管理 Crontba、Ntpdate、Logrotate、Supervisor

crond linux 系统则是由 cron (crond) 这个系统服务来控制的。Linux 系统上面原本就有非常多的计划性工作,因此这个系统服务是默认启动的。 另外, 由于使用者自己也可以设置计划任务,所以,...

狼王黄师傅
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部