精华内容
下载资源
问答
  • 因为最近做的一个项目需要用到文件上传功能,所以就上网查, 但大多数都是代码不全,最后综合了一下。同时添加了获取当前时间,新建文件(如果upload文件夹不存在则新建, path+date)并保存进去。并且API文件上传...

    因为最近做的一个项目需要用到文件上传功能,所以就上网查, 但大多数都是代码不全,最后综合了一下。同时添加了获取当前时间,新建文件(如果upload文件夹不存在则新建, path+date)并保存进去。并且API文件上传处理,以流的形式获取当前值,(前面我已获得一个值输出 name="flat" value="!!")

    下面附上我的这个功能代码以及截图,这个过程用到了2个有关jar包:commons-fileupload-1.2.2.jar,commons-io-1.3.2.jar。有需要的留言,目前上传资源还在审核。

    下载这边个jar包,然后直接拷贝以下代码即可

    代码:

    jsp页面:

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        <title>上传页面</title>
    </head> 
    <body> 
    <!--多文件上传,enctype="multipart/form-data"--> 
    <form action="UploadServlet.do" method="post" enctype="multipart/form-data">
    欢迎平板号:<input type="text" name="flat" value="<%=request.getAttribute("flat_id") %>" readonly="readonly">用户上传截图<p></p>
    <!-- multiple="multiple"  多条选择-->
    截图:  <input type="file" name="fileName" id="name1" multiple="multiple"/>
    <p></p>
    <!-- 未成交截图:<input type="file" name="fileName" id="name2" multiple="multiple" />
    <p></p> -->
    <input type="submit" value="上传"/> 
    </form> 
    </body> 
    </html> 

     

    UploadServlet.java:


    import java.io.*; 
    import java.util.List; 
      
    import javax.servlet.ServletException; 
    import javax.servlet.http.HttpServlet; 
    import javax.servlet.http.HttpServletRequest; 
    import javax.servlet.http.HttpServletResponse; 
      
    import org.apache.commons.fileupload.FileItem; 
    import org.apache.commons.fileupload.FileUploadException; 
    import org.apache.commons.fileupload.disk.DiskFileItemFactory; 
    import org.apache.commons.fileupload.servlet.ServletFileUpload; 
      
    public class UploadServlet extends HttpServlet { 
    private static final long serialVersionUID = 1L;


    public void doPost(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException {  
     request.setCharacterEncoding("utf-8"); //设置编码 
     //获得磁盘文件条目工厂 
     DiskFileItemFactory factory = new DiskFileItemFactory(); 
     //获取文件需要上传到的路径 
     String path = request.getRealPath("/upload");  //上传路径
     factory.setRepository(new File(path)); 
     //设置 缓存的大小,当上传文件的容量超过该缓存时,直接放到 暂时存储室 ,减少占用内存,    实际上传两份.tem格式 可不同目录 
     factory.setSizeThreshold(1024*1024) ; 
       
     ServletFileUpload upload = new ServletFileUpload(factory);  //高水平的API文件上传处理 
     try { 
      //可以上传多个文件 
      List<FileItem> list = (List<FileItem>)upload.parseRequest(request); 
      for(FileItem item : list) 
      { 
      String name = item.getFieldName();  //获取表单的属性名字  
    //获取用户具体输入的字符串 ,名字起得挺好,因为表单提交过来的是 字符串类型的 
       
      //如果获取的表单信息是普通的文本信息
      if(item.isFormField()) 
      {
       String value = item.getString() ;
       request.setAttribute(name, value); 
       System.err.println(value);
      } 
      // file类型
      else
      { 
       //获取路径名 
       String value = item.getName() ; 
       //索引到最后一个反斜杠 
       int start = value.lastIndexOf("\\"); 
       //截取 上传文件的 字符串名字,加1是 去掉反斜杠, 
       String filename = value.substring(start+1);  //获得文件名
       request.setAttribute(name, filename); 
       
       /*
             *获取当前时间*/
            java.text.SimpleDateFormat simpleDateFormat = new java.text.SimpleDateFormat(  
         "yyyy-MM-dd");
            java.util.Date currentTime = new java.util.Date(); 
            String date = simpleDateFormat.format(currentTime).toString();
       
            /*创建文件夹*/
            String fn = path+"\\"+date;  //path+"\\"+id+"\\"+date
            File fileDir = new File(fn);    
            if (!fileDir.exists()) { //如果不存在 则创建     
                fileDir.mkdirs();    
            }   
       System.out.println("路径与文件名:"+fn+"\\"+filename);
       
       //写到磁盘上 抛出的异常 用exception 捕捉 
       //File file = new File(fn+"\\"+filename); 
       OutputStream out = new FileOutputStream(new File(fn,filename)); 
       InputStream in = item.getInputStream() ; 
       int length = 0 ; 
       byte [] buf = new byte[1024] ; 
       // in.read(buf) 每次读到的数据存放在 buf 数组中    
       while( (length = in.read(buf) ) != -1) 
       { 
       //在 buf 数组中 取出数据 写到 (输出流)磁盘上 
       out.write(buf, 0, length); 
       } 
       in.close(); 
       out.close(); 
      } 
      } 
     }catch (FileUploadException e) { 
      e.printStackTrace(); 
     } 
     catch (Exception e) { 
      //e.printStackTrace(); 
     } 
     System.err.println();
     //转发
     request.getRequestDispatcher("success.jsp").forward(request, response); 
     } 
    }

    web.xml

       <servlet>
        <servlet-name>UploadServlet</servlet-name>
        <servlet-class>UploadServlet</servlet-class>

      </servlet>

     <servlet-mapping>
        <servlet-name>UploadServlet</servlet-name>
        <url-pattern>/UploadServlet.do</url-pattern>
      </servlet-mapping>

    运行截图:




    控制台:



    展开全文
  • web项目下的WEB-INF、WebRoot

    千次阅读 2018-07-12 15:27:53
    WebRoot 前言 今天,我们就谈谈web工程的WEB-INF目录,你对它的认识又有多少,为什么今天,要说这个,原因是我在做struts的文件上传的问题,我把图片存放了WEB-INF这个目录,结果痛苦的事就出现了,...

    前言

    今天,我们就谈谈web工程的WEB-INF目录,你对它的认识又有多少,为什么今天,要说这个,原因是我在做struts的文件上传的问题,我把图片存放到了WEB-INF这个目录,结果痛苦的事就出现了,客户端怎么也没有办法去访问该图片。

    WEB-INF简介

    WEB-INF是Java的WEB应用的安全目录。所谓安全就是客户端无法访问,只有服务端可以访问的目录。如果想在页面中直接访问其中的文件,必须通过web.xml文件对要访问的文件进行相应映射才能访问。

    WEB-INF存放的文件类别

    • /WEB-INF/web.xml Web应用程序配置文件,描述了 servlet 和其他的应用组件配置及命名规则。
    • /WEB-INF/classes/包含了站点所有用的 class 文件,包括 servlet class 和非servlet class,他们不能包含在 .jar文件中(是该目录不能包含在.jar文件中)。
    • /WEB-INF/lib/存放web应用需要的各种JAR文件,放置仅在这个应用中要求使用的jar文件,如数据库驱动jar文件。
    • /WEB-INF/src/源码目录,按照包名结构放置各个java文件。
    • /WEB-INF/database.properties数据库配置文件
    • /WEB-INF/tags/ 存放了自定义标签文件,该目录并不一定为
      tags,可以根据自己的喜好和习惯为自己的标签文件库命名,当使用自定义的标签文件库名称时,在使用标签文件时就必须声明正确的标签文件库路径。例如:当自定义标签文件库名称为
      simpleTags 时,在使用 simpleTags 目录下的标签文件时,就必须在 jsp 文件头声明为:<%@taglibprefix=”tags” tagdir=”/WEB-INF /simpleTags” % >。

    WebRoot

    该目录才是你web工程的核心目录,也就是根目录。

    熟悉web开发的小伙伴

    http://localhost:9999/ValidateTest/upload
    upload前面的/就是代表这里的根目录

    今天的内容虽然简单,但是你能够理解,对呢也是有很大的帮助

    有了以上两点,回到最初前言的问题:

    这里写图片描述

     <img src="./uploadFiles/logo.jpg"/> 
     <img src="<s:property value="'uploadFiles/'+uploadFileName"/>"/>//struts的property的默认当前路径
    展开全文
  • 在struts2框架中使用文件上传,在 Action 的处理上传的业务方法中将临时文件中的数据保存指定路径的文件中,我需要保存项目的WebRoot目录下的upload文件夹中 用 String filePath=ServletActionContext....
  • webcontent 与 webroot 问题解决

    千次阅读 2016-05-09 16:15:29
    myeclipse默认webroot myeclipse的webroot中已经有相关的src和lib包 而eclipse的你需要自己动手将.class文件和lib文件放指定目录下才能放tomcat下运行 Web项目发布Tomcat中。在Eclipse中生成项目是...
    都是web项目中的文件夹
    eclipse默认webcontent
    myeclipse默认webroot 
    
    myeclipse的webroot中已经有相关的src和lib包
    而eclipse的你需要自己动手将.class文件lib文件放到指定目录下才能放到tomcat下运行

    Web项目发布到Tomcat中。

    在Eclipse中生成项目是WebContent目录

    而在MyEclipse中生成的项目目录名字好像叫做WebRoot,那么如果把MyEclipse的项目导入到Eclipse中,如果要部署项目到Tomcat中需要做什么修改呢。只需如下一部


    1、右键点击项目--属性--Add

    添加WebRoot目录,删除WebContent


    技术分享

    
    
    展开全文
  • 但是每过一段时间文件夹自动消失,所以导致页面无图片,文件夹是通过自动上传图片给个位置自动生成的
  • FCKeditor我们都知道,是一款不错的上传下载的插件,由于刚刚接触FCKeditor,而且之前开发人员由于一些原因离职,所以我开始慢慢的探索FCKeditor。其中要求FCKeditor的文件存储目录随着项目变化而变化,即不是写死为...

    前阵子公司安排去另一个项目组帮忙,其中用到了FCKeditor。FCKeditor我们都知道,是一款不错的上传下载的插件,由于刚刚接触FCKeditor,而且之前开发人员由于一些原因离职,所以我开始慢慢的探索FCKeditor。其中要求FCKeditor的文件存储目录随着项目变化而变化,即不是写死为一个固定硬盘路径。可悲的我连路径也找不到,到了最后终于找到了,却不知道怎么改。于是自己参考网上一个例子,整理了一个java类获取WebRoot目录方法,供大家使用。

    public String getWebInfPath(String index4Str) { URL url = getClass().getProtectionDomain().getCodeSource() .getLocation(); String path = url.toString(); int index = path.indexOf(index4Str); if (index == -1) { index = path.indexOf("WEB-INF"); } if (index == -1) { index = path.indexOf("bin"); } path = path.substring(0, index); if (path.startsWith("zip")) {// 当class文件在war中时,此时返回zip:D:/...这样的路径 path = path.substring(4); } else if (path.startsWith("file")) {// 当class文件在class文件中时,此时返回file:/D:/...这样的路径 path = path.substring(6); } else if (path.startsWith("jar")) {// 当class文件在jar文件里面时,此时返回jar:file:/D:/...这样的路径 path = path.substring(10); } try { path = URLDecoder.decode(path, "UTF-8"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } return path; }

    展开全文
  • 无法访问WebRoot下新建文件夹中的jsp

    千次阅读 2018-08-03 11:28:02
    今天在学习struts2的文件上传,在WebRoot下建立了个struts文件夹,里面放了个upload.jsp.但无论如何无法访问,在网上找答案。有网友说很有可能是项目上下文写错了,看有没有大小写的问题,但我是挨个对的,仍然...
  • 一、使用maven将你写好的web项目打包成war ... 2、 然后静待war包生成,war包会生成在项目的target文件夹中...二、将war包上传到阿里云的linux服务器的tomcat中 1、方法一:使用window的cmd的scp方法传输 通过cmd...
  • 想要实现的功能:Post附件到WebApi,WebApi 将文件转发 ftp服务器。 主要功能已经实现,有一个问题:需要在WebApi服务器,接收流写入WebApi本地文件,然后读取文件流写入 ftp 服务器,然后再删除WebApi 服务器上的...
  • java web 图片上传

    千次阅读 2013-08-02 23:10:25
    第一次写博客,不会写开头介绍,就直接上代码了~ 图片上传需要导入的jar包:...在WebRoot新建一个upload(图片最终保存的地方) 图片上传界面---jsp代码: String path = request.getContextPath(); String b
  • Java web文件上传下载

    千次阅读 2016-07-27 19:37:16
    本文主要从javaweb上传文件服务器中,并且在服务器端进行数据文件存储,主要分享了文件上传原理、使用第三方开源工具进行上传以及一些文件上传时需要注意的地方,文件的优化处理,还有简易分享了从我们刚才上传...
  • python web 上传文件

    千次阅读 2019-07-12 09:41:08
    python上传文件 一、.写html文件(文件名为upfile.html) 上传文件 {% csrf_token %} 说明: 1、表单中enctype="multipart/form-data"的意思,是设置表单的MIME编码。默认情况...
  • 另一方面原因是文件存在WebRoot目录下,容易在部署项目时不小心删除了文件。 其实我们可以使用SpringMVC的静态资源的方式访问我们的图片路径,可以省略图片服务器。 实现很简单: &amp;amp;lt;mvc:resources ...
  • 项目上传到服务器之后连不上服务器本地的数据库数据库 我的数据库连接代码 public Connection getConnection(){ Connection con=null; try{ final String url="jdbc:mysql://localhost:3306/qulang?...
  • web文件上传(三)--webapi后台接收参数和文件

    万次阅读 热门讨论 2016-10-27 21:28:36
    今儿查了好多关于webapi接收前台同时传来的参数和文件,这一通查找啊,把谷歌百度都翻烂了,找了一堆乱七八糟的,和大家分享下。 好多人们是这样做的 public async Task PostFormData() { // Check if the ...
  • [WebApi] 捣鼓一个资源管理器--多文件上传

    千次阅读 多人点赞 2014-12-02 11:10:38
    既然访问文件接口有了,怎么能少的了文件的上传接口呢! 既然是文件上传接口那就肯定要来一个猛一点的接口--多文件上传 在这一章中,将会讲解如何利用WebApi进行多文件上传
  • web项目打包上传服务器

    千次阅读 2017-12-29 15:43:35
    然后通过WinSCP连接服务器将war拷贝tomcat的webapps目录下,启动tomcat就会自动编译,如需要发布在根目录,把之前的ROOT文件夹删除,再把包名改成ROOT 2.如果打包的war包存在缓存可以用Export实现导出war包 欢迎...
  • 1.右键工程,点击properties。 2.MyEclipse-&gt;Web,修改Web Context-root值。   最后欢迎大家访问我的个人网站:1024s
  •  String testPath = request.getSession().getServletContext().getRealPath("");//tomcat下  File directory = new File(testPath);//设定为当前文件夹  File file = new File(directory.getParentFile()...
  • 一 Java Web文件上传程序 ...传服务器上调用servlet进行处理,把接受的...Java Web上传都是这个思路,网上有很多例子,就不再多说了。  本项目的servlet主体代码如下: //上传文件实际保存路径 uploadPath=requ
  • 在文件上传到服务器后似乎不好管理;每次要下载一个文件也似乎不知从何处下手。 在这一章中将会讲解如何结合数据进行文件的上传存储,保证文件的存储足够安全以及足够简单;同时增加不重复保存同一个文件。
  • web项目中图片上传

    千次阅读 2016-11-28 14:48:32
    我所想实现的是,在后台页面上传图片,存放路径数据库中,而前台页面通过数据库可以查,然后在页面显示,而上传的图片要保存我在项目中所建的文件夹内
  • Web Api Self Host大文件上传功能

    千次阅读 2017-06-21 16:23:16
    Web Api 多文件上传功能还是直接贴代码比较直观 /// /// 多文件上传接口 /// /// <returns></returns> public async Task<IHttpActionResult> Upload(string jobid) {
  • java 修改web-root folder 的值

    千次阅读 2016-02-16 13:47:21
    今天用myeclipse 时部署一个项目,发现配置有问题,在 web配置中,web-root folder 这个值是错误的,直接修改后保存后发现还是这样,不起作用。上网查发现也有这样的问题的人,但是没有解决方法,后来在同事帮助下...
  • Web安全-文件上传漏洞与WAF绕过

    千次阅读 多人点赞 2018-12-29 10:15:51
    概述 文件上传漏洞是指用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力。...(1)上传文件是Web脚本语言,服务器的Web容器解释并执行了用户上传的脚本,导致代码执行。 (...
  • 把请求发送 webView 里,实现显示内容      [ myWebView   loadRequest :request];       } - ( void )viewDidUnload {      [ self  setMyWebView : nil ]; ...
  • java web 一行代码实现文件上传下载

    千次阅读 2015-11-08 20:22:10
    每当要实现文件上传下载的功能时,都要复制粘贴拼凑代码。如果用了不同的框架,代码还不一样,配置啥的一堆,甚是繁琐,不喜欢。科学家们喜欢把纷繁复杂的自然现象总结为一个个简洁的公式,我们也来试试,把上传下载...
  • 例如我将要把一个图片上传到项目中 //获得上传的路径 String path = getServletContext().getRealPath("/book_img");//得到的路径为D:\法方课件\JAVA\apache-tomcat-7.0.57\webapps\zhistore\book_img 这样的话...
  • 下面这个命令保存为backup.sh文件,web工程在/opt/tomcat7/webapps下,projectname是工程名,改成自己的, 数据库mysql安装在/usr/local/mysql下, 用户名root,密码mysqlpassword,数据库mysqldata
  • 二、webRoot下存储 利用上床组件把图片上传到web项目下,再存储图片的相对路径数据库表中,需生成一个新的不会重复的图片名 缺点:显而易见重新部署项目前需要重新把已上传的图片备份,待部署成功后拷贝

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 105,299
精华内容 42,119
关键字:

web上传到webroot