精华内容
下载资源
问答
  • 本地路径是 D:\ ..\..\ 地址栏中的路径 是/ 正的斜杠 示例 上传本地的绝对路径 D:\soft\apache-tomcat-7.0.41\webapps\AppInfoSystem\statics\uploadfiles\com.doodleapps.powdertoy-V1.1.2.apk String path ...

    本地路径是 D:\  ..\..\

    地址栏中的路径 是/  正的斜杠

    示例

    上传到本地的绝对路径

    D:\soft\apache-tomcat-7.0.41\webapps\AppInfoSystem\statics\uploadfiles\com.doodleapps.powdertoy-V1.1.2.apk

    String path = request.getSession().getServletContext().getRealPath("statics" + File.separator + "uploadfiles");

    得到的是:D:\soft\apache-tomcat-7.0.41\webapps\AppInfoSystem\statics\uploadfiles

                  一、  什么servletContext()就是D:\soft\apache-tomcat-7.0.41\webapps\AppInfoSystem\

                      补充:WEB容器在启动时,它会为每个WEB应用程序都创建一个对应的ServletContext对象,

                                 它代表当前web应用。

                    二、getRealPath(“ xxx”) 表示 web项目绝对路径衔接上一下级子目录xxx

                              D:\soft\apache-tomcat-7.0.41\webapps\AppInfoSystem\statics\uploadfiles


                               

    数据库存放--下载路径

    /AppInfoSystem/statics/uploadfiles/com.doodleapps.powdertoy-V1.1.2.apk

    用户访问下载路径的时候

    localhost:8080/AppInfoSystem/statics/uploadfiles/com.doodleapps.powdertoy-V1.1.2.apk

    如何实现?

    调用request.getContextPath() ,获得:  /AppInfoSystem  (   /  +项目名  ) 

           downloadLink = request.getContextPath() + "/statics/uploadfiles/" + apkFileName;

    实战

    @RequestMapping(value="/addversionsave", method=RequestMethod.POST)
      public String addVersionSave(AppVersion appVersion, HttpSession session, 
    		  HttpServletRequest request, 
    		  @RequestParam(value="a_downloadLink", required=false) MultipartFile attach)
      {
        String downloadLink = null;// 下载路径
        String apkLocPath = null; // apk当地路径
        String apkFileName = null;// apk文件名
        if (!(attach.isEmpty())) {
        	//在statics下创建uploadfiles目录,后形成上传文件的本地保存绝对路径
        	
          String supPath = request.getSession().getServletContext().getRealPath("statics" + File.separator + "uploadfiles");
          //上传的文件存放的绝对父级目录
          this.logger.info("uploadFile path: " + supPath);
          //文件的原始名
          String oldFileName = attach.getOriginalFilename();
          //获得原始名的后缀
          String suffix = FilenameUtils.getExtension(oldFileName);
          if (suffix.equalsIgnoreCase("apk")) {
            String apkName = null;//设置为null ,然后重新命名成唯一名字
           
           //获得app_inf表格中的APKName字段值,因为这个是唯一标识的(业务设计规定的)
            apkName = this.appInfoService.getAppInfo(appVersion.getAppId(), null).getAPKName();
           
            //url路径传参:error="error1":APK信息(APK名称)不完整!
            if ((apkName == null) || ("".equals(apkName)))
              return "redirect:/dev/flatform/app/appversionadd?id=" + appVersion.getAppId() + 
                "&error=error1";
            //拼接:com.doodleapps.test1  -   HV1.1.4.apk
            apkFileName = apkName + "-" + appVersion.getVersionNo() + ".apk";
            //将上级绝对本地路径supPath(/statics/uploadfiles)和apkFlieName拼接成一个文件路径,然后创建文件
            File targetFile = new File(supPath, apkFileName);
            if (!(targetFile.exists()))//目标文件名不存在的话,新建一个
            	//创建path的下一级目录:apkFileName
              targetFile.mkdirs();
            try
            {
            	//文件上传,本质就是将attach中绑定的文件数据,复制到新建的文件中
              attach.transferTo(targetFile);
            }
            catch (Exception e) {
              e.printStackTrace();
              //上传是出现异常的话,那么返回页面提示语:error2,上传失败
              return "redirect:/dev/flatform/app/appversionadd?id=" + appVersion.getAppId() + 
                "&error=error2";
            }
            // apk文件的服务器存储路径
            apkLocPath = supPath + File.separator + apkFileName;
            
            
            //下载链接,示例  /AppInfoSystem/statics/uploadfiles/com.doodleapps.powdertoy-V1.1.31.apk
            //request.getContextPath() 得到的就是项目名路径 /AppInfoSystem
            downloadLink = request.getContextPath() + "/statics/uploadfiles/" + apkFileName;
    
          } else {
        	  //若后缀名不是apk的话,页面返回 文件格式错误
            return "redirect:/dev/flatform/app/appversionadd?id=" + appVersion.getAppId() + 
              "&error=error3";
          }
        }
        //将数据存储到数据库中,使用setter()
        //创建人Id
        appVersion.setCreatedBy(((DevUser)session.getAttribute("devUserSession")).getId());
        //创建时间
        appVersion.setCreationDate(new Date());
        //下载路径(一定是绝对路径)如:/AppInfoSystem/statics/uploadfiles/com.kleientertainment.doNotStarvePocket-V1.1.2.apk
        appVersion.setDownloadLink(downloadLink);
    /*    apk文件的服务器存储路径 如:D:\soft\apache-tomcat-7.0.41\webapps\
     *            AppInfoSystem/statics/uploadfiles/com.kleientertainment.doNotStarvePocket-V1.1.2.apk  
    */    appVersion.setApkLocPath(apkLocPath);
        //apk文件名,如:com.kleientertainment.doNotStarvePocket-V1.1.2.apk
        appVersion.setApkFileName(apkFileName);
        try {
        	//将appVersion对象添加到数据库中
          if (this.appVersionService.appsysadd(appVersion)){
            return "redirect:/dev/flatform/app/list";
          }
        }
        catch (Exception e){
          e.printStackTrace();
          return "redirect:/dev/flatform/app/appversionadd?id=" + appVersion.getAppId(); 
          }
          return "redirect:/dev/flatform/app/appversionadd?id=" + appVersion.getAppId();
      }
    

     

    展开全文
  • 页面异常导致本地路径泄露 网站安全检测可能会出现这样一项漏洞,漏洞的修复办法: 如果是PHP应用程序/Apache服务器,可以通过修改php脚本、配置php.ini以及httpd.conf中的配置项来禁止显示错误信息: 1.修改...

    页面异常导致本地路径泄露

    网站安全检测可能会出现这样一项漏洞,漏洞的修复办法:
    如果是PHP应用程序/Apache服务器,可以通过修改php脚本、配置php.ini以及httpd.conf中的配置项来禁止显示错误信息:

    1.修改php.ini中的配置行: display_errors = off
    2.修改httpd.conf/apache2.conf中的配置行: php_flag display_errors off
    3.修改php脚本,增加代码行: ini_set(‘display_errors’, false);

    当然我们许多朋友可能用的是虚拟主机,所以办法就是第三种了,在检测提示的漏洞地址修改脚本,在空间里面找到文件进行修改:

    如果是文件直接在文件里面最顶端加入代码:

    <?php ini_set(‘display_errors’, false); ?>

    如果是文件目录则找到类似index.php , default.php的默认模板文件在最顶端加入代码:

    <?php ini_set(‘display_errors’, false); ?>

    PS:再说一下检测后发现install.php文件这个漏洞,在wordpress下,一般是wordpress的安装遗留下来的安装文件,一般在wp-admin/install.php的目录下,你也可以修改它的名字,后缀,甚至删除它,如果以后用到可以再改回来。



    无觅相关文章插件,快速提升流量

    本文固定链接: http://www.jinliniuan.com/archives/281 | 金林苑

    展开全文
  • (1)可能出现的问题是: File file = new File(文件路径) : 文件路径没有截止文件名,所以找不;(2)下载的文件包含中文字符: 也会出现此问题;建议下载文件设置为英文字符或数字;下载文件的流程: /** * ...

    (1)可能出现的问题是: File file = new File(文件路径) : 文件路径没有截止到文件名,所以找不到;

    (2)下载的文件包含中文字符: 也会出现此问题;

    建议下载文件设置为英文字符或数字;

    下载文件的流程:


        /**
         * 下载文件
         * @param id
         * @param res
         * @param request
         */
        @ApiOperation(value="下载文件", notes="下载文件", produces="application/json")
        @GetMapping(value="/download/{id}", produces = "application/json")
        public void downloadTemplate(@PathVariable("id") Long id, HttpServletResponse res, HttpServletResponse request) {
            MesProductionFilesEntity entity = mesFilesService.queryObject(id);
            if (null != entity) {
                String filepath = null;
                try {
                    filepath =entity.getFilePath();
                    downloadResultFile(res, request, filepath, entity.getFileName());
                    logger.info("下载成功!");
                } catch (Exception e) {
                    e.printStackTrace();
                    logger.error("下载文件异常");
                }
            }else {
                logger.error("下载失败:根据ID 未能找到文件信息!");
            }
        }
        /**
         * 下载文件的方法
         * @param res response对象
         * @param filePath 待下载的文件名
         * @param downloadName 下载给用户的文件名
         */
        private void downloadResultFile(HttpServletResponse res, HttpServletResponse request, String filePath, String downloadName) {

            try {
           if (request.getHeader("User-Agent") != null && request.getHeader("User-Agent").toUpperCase().indexOf("MSIE") > 0) {
                    downloadName = URLEncoder.encode(downloadName, "UTF-8");
                } else {
                    downloadName = new String(downloadName.getBytes("UTF-8"), "UTF-8");
                }
            }
            catch (UnsupportedEncodingException ue) {
                logger.error("download filename convert encoding exception ", ue);
            }

            res.setContentType("application/octet-stream");
            res.addHeader("Content-Disposition", "attachment; filename=" + downloadName);
            BufferedInputStream bis = null;
            BufferedOutputStream out = null;
            File file = new File(filePath);
            try {
                bis = new BufferedInputStream(new FileInputStream(file));
                out = new BufferedOutputStream(res.getOutputStream());
                byte[] buff = new byte[2048];
                while (true) {
                    int bytesRead;
                    if (-1 == (bytesRead = bis.read(buff, 0, buff.length))) {
                        break;
                    }
                    out.write(buff, 0, bytesRead);
                }
                out.flush();
            } catch (IOException e) {
                logger.error("output template file exception", e);
            } finally {
                IOUtils.closeQuietly(bis);
                IOUtils.closeQuietly(out);
            }
        }

    展开全文
  • SpringBoot 上传文件时本地路径无效

    千次阅读 2019-04-29 19:09:35
    SpringBoot 通过网关Zuul进行附件上传的时候,有时会出现如下错误 [Request processing failed; nested exception is org.springframework.web.multipart.MultipartException: Could not parse multipart servlet ...

    SpringBoot 通过网关Zuul进行附件上传的时候,有时会出现如下错误

    [Request processing failed; nested exception is org.springframework.web.multipart.MultipartException: Could not parse multipart servlet request; nested exception is java.io .IOException: The temporary upload location [/tmp/tomcat.3814974221022613431.8080/work/Tomcat/localhost/ROOT] is not valid] with root causejava.io .IOException: The temporary upload location [/tmp/tomcat.3814974221022613431.8080/work/Tomcat/localhost/ROOT] is not valid 

     

    错误产生的原因:

    1.spring boot的应用服务在启动的时候,会生成在操作系统的/tmp目录下生成一个Tomcat.*的文件目录,用于"java.io.tmpdir"文件流操作
    TomcatEmbeddedServletContainerFactory

     

    2.程序对文件的操作时:会生成临时文件,暂存在临时文件中;长时间不操作,导致/tmp下面的tomcat临时文件目录被删除,

    且删除的文件不可恢复,上传文件时获取不到文件目录,报错

    解决方式有以下几点:

    1、重启服务;

    2、网关是否引入spring-boot-starter-web依赖,若无,则将其引入;

    3、设置spring.servlet.multipart.enabled:true

    4、修改上传文件默认的BaseDir


     

    展开全文
  • 向分区表中加载数据时如下图命令:红色部分为数据路径 load data local inpath ' /sogou_3/500w/sogou.500w.utf8' into table sogou_partition_3 partition(year='2011',month='12',day='30',hour='10')
  • java读取FTP文件下载到本地

    万次阅读 2017-03-24 11:15:45
    ftp相当于是自己建一个网盘,然后创建用户,为用户提供上传下载功能。特别是多平台得数据交互,优势还是蛮大的。有兴趣的可以研究一下,限于篇幅,这里主要是讲解java调用ftp。 首先自己创建一个实体类:Ftp.java ...
  • ![图片说明](https://img-ask.csdn.net/upload/201803/14/1521021289_910892.png) ![图片说明](https://img-ask.csdn.net/upload/201803/14/1521021304_80060.png) ![图片说明]...
  • 问题1:下载apk 内部存储,安装时无法找到路径,提示:解析包时发生错误 这个原因就是由于权限的原因,首先内部存储,在权限的原因下,默认为私有,内部存储所以只能本应用自己调用。而安装应用是...
  • 如果没有没有中文路径,则获取文件或者获取文件流都是比较简单的。网上有大把的例子,拿来改薄该博就可以了。但一出现中文路径,则难度增加不少。关键是要知道你公司的ftp服务器默认的编码格式。这个很重要!
  • 如果在读取时加上图片的Config参数,可以更有效减少加载的内存,从而有效阻止抛出out of Memory异常另外,decodeStream直接拿的图片来读取字节码了, 不会根据机器的各种分辨率来自动适应,使用了decodeStream之后,...
  • Android 异常崩溃日志,捕捉并保存到本地; 前几天因为在省公安厅做一个通讯类之类的应用;碰到个问题,就是download人员信息将信息保存到本地数据库完成的时候,菊花转还没有dismission掉程序就崩溃了;当然...
  • 如果在读取时加上图片的Config参数,可以更有效减少加载的内存,从而有效阻止抛出out of Memory异常另外,decodeStream直接拿的图片来读取字节码了, 不会根据机器的各种分辨率来自动适应,使用了decodeStream之后,...
  • 今天在服务器上配置FTP,出现了两个问题: 1、用户名及密码添加成功,但是其它配置用户的文件失败,FTP无法登陆; 2、访问路径有问题,不是绝对路径,导致FTP无法登陆; 解决办法如下: 1、首先,确认FTP是否...
  • java实现上传下载ftp文件指定目录 包括中文路径中文文件
  • java读取本地文件失败终极解决方案FileNotFoundException,等一系列相关异常解决
  • //下载到那个文件夹下,以及命名 request . setDestinationInExternalPublicDir ( Environment . getExternalStorageDirectory ( ) . getPath ( ) , "/xxx.mp4" ) ; //下载的唯一标识,可以用这个标识来控制这...
  • 当我们把项目打成war包部署服务器上,会有不用的用户使用我们的应用,这个时候如果一个客户端出现了问题,那我们如果在控制台去找该用户抛出的异常或错误信息,是一件很难受,很麻烦的事情。为了解决这个问题,...
  • 这是异常提示: java.lang.NullPointerException at java.io.FileOutputStream.(FileOutputStream.java:206) at java.io.FileOutputStream.(FileOutputStream.java:104) _**at ...
  • 出现“文件保存异常路径“D:\\20190527”的访问被拒绝”错误。 文件属性各项正常。发现是因为启的服务登录问题。 打开该服务项的属性,打开登录,将此账户勾选到本地系统账户,确定,然后重启启动服务。OK。 ...
  • 装了SQL Server2016后,一直连接的远端数据库,今天忽然来连接本地数据库时,忽然出现了错误:系统找不指定的文件 解决办法: 进入cmd, 输入:net stop mssqlserver;  net start mssqlserver; 重启sql ...
  • 本地做图片上传时: multipartFile....执行这一步时,会出现文件找不异常,那是因为文件的上传路径不对, 在本地上传路径,要以盘符开头,例如E:/data 不能用,如www/images/2020/这样的相对路径 ...
  • 异常情况: 服务器环境windows 2016,phpstudy pro部署, php 7.3 ,MySQL5.7.6,出现上图错误。 layui版本:v2.2.6 MIT 其实遇见这种问题是很奔溃,因为这个错误原因,事情往往是是干进度...
  • SAP与FTP之间数据交互后台出现异常

    千次阅读 2013-04-10 15:33:02
    后台执行RFC将内表数据传输FTP服务器,出现错误“RFC程序SAPFTP”失败,前台执行没有问题。 在解决此问题时,下面的博文给了我启示,共享出来,大家共同进步。 ——————————————————————...
  • 手动将本地jar添加Maven仓库

    万次阅读 2016-04-07 13:30:53
    一、将jar添加到本地仓库的做法:以下面pom.xml依赖的jar包为例:实际项目中pom.xml依赖写法:&lt;dependency&gt; &lt;groupId&gt;org.springframework&lt;/groupId&gt; &lt;...
  • App错误日志记录到本地

    千次阅读 2017-09-15 13:14:39
    所以,将错误记录至本地并发送后台,会方便日后优化及维护。 2.bug捕捉的工具类 import java.io.File; import java.io.FileOutputStream; import java.io.PrintWriter; import java.io.StringWriter; import jav
  • * false:所有文件跑压缩包根目录下(注意:不保留目录结构可能会出现同名文件,会压缩失败) * * @throws RuntimeException 压缩失败会抛出运行时异常 * */ public static void toZip(String srcDir, ...
  • 在windows下用Spark mlib跑机器学习模型时,保存模型到本地出现空指针异常。代码如下: import org.apache.spark.mllib.classification.{LogisticRegressionWithLBFGS, SVMWithSGD} import org.apache.spark....
  • 文件下载异常处理

    千次阅读 2017-05-01 22:18:27
    现象:前段时间编写了一个文件下载的模块,在本地windows运行没有任何问题,文件都可以正常下载,但是当程序部署linux生产环境后进行测试后发现中文文件名文件无法下载。 解决过程: 1、使用xftp工具查看文件夹...
  • 1.首先我们需要将图片下载本地。... * 下载文件到本地 * * @param urlString * 被下载的文件地址 * @param filename * 本地文件名 * @throws Exception * 各种异常 */ public static
  • 出现问题的原因 ...定义项目名和静态资源路径后发现,templates中html 中引用的css,js的相对路径出现异常 在上面目录中,index.html 通过相对路径引用css href="../static/xxx" 就获取不了...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 112,239
精华内容 44,895
关键字:

下载到本地路径出现异常