精华内容
下载资源
问答
  • Java 上传文件 获取绝对路径

    千次阅读 2019-05-29 20:22:06
    https://blog.csdn.net/qq_36473199/article/details/86623794
    展开全文
  • java web中File的相对路径与绝对路径总结,用于在运行时获取配置文件、动态加载对象等
  • 使用JavaScript实现文件上传到本地服务器并获取上传文件所在路径,是由到JavaScript,java以及html页面。这个比较好,不是在jsp上获取路径,jsp太简单了,而且过时了,所以就在html页面实现了下功能,我主要是做...
  • 1. 第一张图片前端from表单上传文件 2.第二张controller层接收文件 3.控制台输出后,得到的文件名称是:order.xls **如何通过此文件名称得到这个文件:order.xls 在磁盘的绝对路径** 我想得到的路径是:D:/...
  • public Workbook read(String fileName, boolean flag) throws Exception { Workbook wb = null; String extraFileName = ""; if (flag) { extraFileName = this.getExtensionName...我是从jsp页面上传文件
  • 用jsp,servlet,在jsp页面上上传文件,需要获取文件的相对路径,但是现在的浏览器出于安全都无法获取,怎么才能获取到?
  • 我们可能用过下面这种方式来读取一个文件,请注意这种方式是把路径写死的。并且还有一个问题是,在windows操作系统的编辑器下,默认路径是project的根,这样写是没问题的,但是如果我们的代码移植到了linux中,这个...

    我们可能用过下面这种方式来读取一个文件,请注意这种方式是把路径写死的。并且还有一个问题是,在windows操作系统的编辑器下,默认路径是project的根,这样写是没问题的,但是如果我们的代码移植到了linux中,这个路径就无效了。

    public static void main(String[] args) throws ClassNotFoundException, FileNotFoundException {
    		FileReader fr=new FileReader("com.donglijiedian.reflectDemo.Student");
    	}

    所以一般情况下我们不用上面那种方式表示一个文件的路径,而是采用下面这种方式。下面这种方式获取的文件路径是文件的绝对路径,并且在不同的系统下是通用的。

    • Thread.currentThread()是获取当前线程
    • getContextClassLoader()是线程的方法,能获取当前线程的类加载器
    • getResource()是类加载器的方法,当前线程的类加载器默认是从类的根路径下加载资源
    • 类的路径是src
    public class ReflectTest1 {
    	public static void main(String[] args) throws ClassNotFoundException, FileNotFoundException {
    		//FileReader fr=new FileReader("com.donglijiedian.reflectDemo.Student");
    		String filename=Thread.currentThread().getContextClassLoader().getResource("com/donglijiedian/db.properties").getPath();
    		System.out.println(filename);
    		FileReader fr2=new FileReader(filename);
    	}
    }

     

    展开全文
  • } try { // 上传文件,核心功能 file.transferTo(file1); } catch (IOException e) { e.printStackTrace(); } } 几个注意点 接下来就是写service层和dao层,很简单,普通的增删改查(略) 下载 ${pageContext....

    准备

    首先导入两个jar包,下方是maven依赖,版本可自己选

    		<dependency>
                <groupId>commons-io</groupId>
                <artifactId>commons-io</artifactId>
                <version>1.4</version>
            </dependency>
            <!-- https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload -->
            <dependency>
                <groupId>commons-fileupload</groupId>
                <artifactId>commons-fileupload</artifactId>
                <version>1.2</version>
            </dependency>
    

    html

    <form name="form" action="" enctype="multipart/form-data"
    				method="post">
    	<input type="file" name="uploadFile" id="upload">
    	<button type="submit" onclick="formSave()">保存</button>
    </form>
    
    <script>
    function formSave() {
    	document.form.action="${pageContext.request.contextPath}/test/save.do";
    }
    </script>
    

    java后端

    @RequestMapping("/save.do")
    public void save(Contract contract, @RequestParam("uploadFile") MultipartFile file, HttpServletRequest	request) throws Exception {
            String trueName = file.getOriginalFilename();
            String path = "d:/";  //自己设置一个路径
    
            File file1 = new File(path + trueName);
            String uploadURL = path + trueName;
    //        判断当前文件父级文件夹是否存在,如果不存在,就创建文件夹
            if (!file1.getParentFile().exists()) {
                file1.mkdirs();
            }
            try {
    //            上传文件,核心功能
                file.transferTo(file1);
            } catch (IOException e) {
                e.printStackTrace();
            }
    		
    }
    

    几个注意点

    在这里插入图片描述

    接下来就是写service层和dao层,很简单,普通的增删改查(略)

    下载

    
    <a href="${pageContext.request.contextPath}/contract/downLoadAppendices.do?id=${contract.ID}">下载</a>
    
    
        @RequestMapping("/downLoadAppendices.do")
        public void downLoadAppendices(HttpServletRequest request,HttpServletResponse response) throws IOException {
        //前端传id值,根据id值查出数据库字段中的地址字符串
            String id = request.getParameter("id");
            String path = contractService.downLoadAppendices(id);
            // 修改文件名的编码格式
            String fName = path.trim();
            String fileName = fName.substring(fName.lastIndexOf("/")+1);
            ServletContext servletContext = request.getServletContext();
            FileInputStream fis = new FileInputStream(path);
            //MIME类型:在互联网通信过程中定义的一种文件数据类型
            String mimeType = servletContext.getMimeType(fileName);
            response.setHeader("content-type",mimeType);
            response.setHeader("content-disposition","attachment;filename="+fileName);
            ServletOutputStream sos = response.getOutputStream();
            byte[] buff = new byte[1024];
            int len = 0;
            while((len=fis.read(buff))!=-1){
                sos.write(buff,0,len);
            }
            fis.close();
        }
    
    展开全文
  • 开发项目:Java Web 项目 问题重现:在几天前忙于一个急于上线的项目就没来得及分析总结,现在空下来了就好好整理一下,事情是这样的,那天我在 src 下新建了一个类型为 Source Folder 的 resource资源文件夹(项目...

    一、背景

    1. 使用开发工具:Eclipse
    2. 开发项目:Java Web 项目
    3. 问题重现:在几天前忙于一个急于上线的项目就没来得及分析总结,现在空下来了就好好整理一下,事情是这样的,那天我在 src 下新建了一个类型为 Source Folderresource资源文件夹(项目中还没有此类文件夹),然后再通过一个工具类获取 resource 下的文件,当时是使用代码 XXX.class.getClassLoader().getResource(filePath) 获取文件,在本机上测试没有问题,接下来上传代码到 SVN,项目经理测试功能,发现使用上述代码获取不到文件,然后仔细看了一下从 SVN 上更新下来的代码,发现 resource 文件夹标志和我本地的不一样。我本机的是在这里插入图片描述,从 SVN 下更新下来的是在这里插入图片描述,后面试着将 SVN 下更新下来的该文件夹进行重命名为 Source Folder 类型的文件夹就能获取到了。
        问题背景就描述到这里,接下来就有一个疑问:为什么将该资源文件夹上传 SVN 后就不是资源文件夹(Source Folder)了,而变成了文件夹(Folder) ?

    二、原因分析

      带着上述问题,经过反复测试仔细研究发现,在 Eclipse 中新建一个 Source Folder 时,在项目中 .classpath 文件会增加一行信息,例如上面我创建了一个资源文件夹 resource 时就会在 .classpath 文件中增加一行代码 <classpathentry kind="src" path="resource"/>,这行代码表示 resource 是一个资源文件夹。那么问题为什么将该资源文件夹上传 SVN 后就不是资源文件夹(Source Folder)了,而变成了文件夹(Folder) 这就迎刃而解了,是因为我在上传 SVN 时没有将更改后的 .classpath 文件上传 SVN ,这就造成了项目经理在更新项目后,项目不知道 resource 是资源文件夹,就给当成了文件夹处理。

    三、总结

      后来想了想,在Java 项目中通过上述的方式获取文件可靠吗?在 Java Web 项目中有哪些获取文件的方式?
      带着这两个问题从网上找到了答案,然后自己又经过一番测试发现通过上述代码获取文件是可靠的(我那个文件是配置文件,不会改动)。

      首先是我新建一个 Java Web 项目,准备测试环境,目录结构如下:
    目录结构
    编写测试类获取文件路径:

    package com.util;
    
    /**
    * @Description 测试获取文件路径
    * @author 欧阳
    * @since 2019年1月28日 下午4:25:36
    * @version V1.0
    */
    
    public class Test {
    
    	public static void main(String[] args) {
    		//获取src/ClassPath下的文件 111.txt 的绝对路径
    		System.out.println(Test.class.getClassLoader().getResource("111.txt").getPath());
    		
    		//获取 src/ClassPath的绝对路径
    		System.out.println(Test.class.getClassLoader().getResource(".").getPath());
    		//获取 src/ClassPath的绝对路径
    		System.out.println(Test.class.getClassLoader().getResource("").getPath());
    		//获取 src/ClassPath的绝对路径
    		System.out.println(Thread.currentThread().getContextClassLoader().getResource(".").getPath());
    		//获取 src/ClassPath的绝对路径
    		System.out.println(Thread.currentThread().getContextClassLoader().getResource("").getPath());
    				
    		//获取项目的绝对路径
    		System.out.println(System.getProperty("user.dir"));
    
    		//获取当前类文件的绝对目录,不包括自己的上级目录
    		System.out.println(Test.class.getResource(".").getPath());
    		//获取当前类文件的绝对目录,不包括自己的上级目录
    		System.out.println(Test.class.getResource("").getPath());
    		
    		//获取webRoot下文件(主要是通过上下文获取和通过request)
    //		System.out.println(request.getSession().getServletContext().getRealPath("/resource"));
    	}
    
    }
    
    

    获取 src / ClassPath 下文件路径有三种:

    1. Test.class.getClassLoader().getResource("111.txt").getPath();
    2. Test.class.getResource("").getPath();
    3. Thread.currentThread().getContextClassLoader().getResource(".").getPath();

    获取 Webroot 下文件路径主要是通过上下文和request进行获取,这块就就演示了,有很明显的方法。

    展开全文
  • 标题:Javaweb中上传图片,获取相对路径,绝对路径 实际上获取的是绝对路径,不过通过浏览器查看到的不会是绝对路径,而是被浏览器保护好,给你看到的一个假的路径,而我们要做的就是获取图片的名字即可,人为的添加...
  • 获取前端界面传入文件绝对路径

    千次阅读 2020-02-24 20:51:40
    文件绝对路径上传到后台 在做这一部分的时候我也费了很长一段时间去查找资料,发现很多的方法都不能直接获取文件的绝对路径。最后发现,大部分浏览器为了安全起见,都设置了拒绝文件绝对路径获取。如果要求用户在...
  • import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.net.SocketException;import java.sql.Connection;import java.sql.DriverManager;import...
  • java获取文件电脑路径

    2019-11-12 15:21:38
    URL url = Thread.currentThread().getContextClassLoader().getResource("META-INF/public/ymsweb/waybill/dispatchPrint/zhuancangdan.jasper"); String path = url.getPath();
  • fastdfs就不做多介绍了,一...下面分别介绍java版的各种文件上传操作 1:引入 net.oschina.zcx7878 fastdfs-client-java 1.27.0.0 2:编写一个配置文件:client.conf 里面可以只有一句话,配置上tracke的地
  • 获取文件绝对路径 必须保证src下有com目录,com目录下有子目录 public class Path { public static void main(String[] args) throws IOException { //获取一个文件绝对路径 //String path =Thread.current...
  • firefox为了浏览器安全性,不能获得上传文件绝对路径。。document.getElementById('file').value获得的是文件名 在ie里获得的却是绝对路径 Java代码 function readFile(fileBrowser) { if ...
  • 实现获取本地文件夹路径,不支持文件获取文件上穿 选择文件夹得弹框效果 前端代码 <!DOCTYPE html> <html> <head> <head> <!-- 兼容IE --> <meta charset="UTF-8"> <...
  • public static String getWebRootPath(Class<?> clazz) { String webClassesPath = clazz.getProtectionDomain().getCodeSource().getLocation().getPath(); if (webClassesPath.indexOf("WEB-INF") >...
  • 系统需要做一个计算文件MD5值的功能,但是前台js无法获取文件绝对路径,后台java类需要得到路径才能计算,求助有没有大佬帮忙解决
  • button.addActionListener(new ... //获取绝对路径 System.out.println(filepath); System.out.println("You chose to open this file: "+ chooser.getSelectedFile().getName()); //输出相对路径 } } });
  • java项目获取文件路径的几种方式

    千次阅读 2019-09-14 11:16:45
    java web项目中 获取resource路径下的文件路径: public GetResource{  String path = GetResource.class.getClassLoader().getResource("xx/xx.txt").getPath(); } 说明:GetResource是当前的类; ...
  • Java中配置文件路径获取

    千次阅读 2018-01-15 07:23:52
    最近写mybatis 突然遇到配置文件加载的问题, 正好有机会把关于java路径的问题整理一下。在下面的情况中,可以获得文件路径, 也可以吧文件转成流以便使用。 servlet 加载配置文件路径 在servlet中有一个被称之为...
  • 这个例子原理: 通过建立本地和服务器之间的通信链接 把本地中要上传文件通过流上传到服务器上面 然后读取服务器中的文件。...其实没有获取到本地的绝对路径,网上很多关于这方面的办法 但是大多都是针对IE和F...
  • java获取项目的绝对路径

    万次阅读 2017-04-08 15:17:09
    java获取项目的绝对路径
  • 使用sftp从本地向服务端传输文件时需要知道本地文件的绝对路径,而从前端使用<input type=...获取到的文件绝对路径被隐藏了,变成了C:\fakepath,如何解决?</p>
  • 由于IDEA上传文件静态资源,保存的路径和eclipse有些区别,之前用eclipse是保存在WEB-INF下, 当然我们也可以修改output directory,和eclipse一样放在WEB-INF目录下,操作如下,编辑tomcat 1 23 @...
  • 上传文件时服务器路径问题

    千次阅读 2018-02-02 15:44:51
    在上传文件到服务器上时,上传到服务器的...1.项目目录下建立excel文件夹存入上传文件 1.1得到当前的classpath的绝对路径的URI表示法。 String serverPath=Thread.currentThread().getContextClassLoader()....
  • java FTPClient中的相对路径和绝对路径

    千次阅读 2020-07-20 16:00:21
    根目录 FTPClient的根目录为"/" 切换到根目录 ftpClient.changeWorkingDirectory("/"); // 切换到根目录 String dir = ftpClient....绝对路径是以/开头的,比如"/AA","/AA/BB","/AA/BB/CC/","/AA/BB/CC/test.tx
  • 1.java获取上传文件的大小,时长 在java获取上传文件的时长方法多种,在此我用其中的一种,不过需要引入一个jave.jar,此jar在maven仓库总下载不到,我保存到自己的网盘中了,链接: ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 22,684
精华内容 9,073
关键字:

java获取上传文件绝对路径

java 订阅