JavaScript判断文件是否存在的实例代码

一、业务场景

最近一直在做和文件上传和下载相关的开发,在涉及到下载的时候,我使用如下的方法进行下载

   //获取或者赋值一个下载路径
   let downUrl;
   //采用如下的方式可以直接下载文件
   window.location.href = downUrl;

业务问题:如果这个文件不存在,会出现页面跳转的情况;

比如:1、刚好文件存储服务器挂机了 2、或者刚好文件存储服务器上的文件被人删除了

如上的不正常访问都会导致下载功能出现问题,对用户来说不友好的是出现页面跳转的情况

这里如果我们在下载的时候知道文件是否存在就可以很好的解决这个问题了

二、解决方案

提供两种解决思路

1.后端解决:一般文件存储在文件存储服务器是有一个专门的key,看看能否单独有一个查询文件是否存在的接口,即下载前根据文件的唯一key查询一下文件是否存在,如果存在则执行下载的语句,如果不存在,给出用户对应的提示

             if(){
             //如果文件存在下载
             }else{
             //否则给出对应的提示
             }

2.前端解决:前端方法判断文件流是否存在

我给出的是vue里面方法的写法,供实践参考

            /**
             * 判断服务的文件是否存在
             * @param filepath 文件地址
             * @param filename
             * @returns {Boolean}
             */
         isExistFile(filepath, filename){
              if(filepath == null || filename == null || filepath === "" || filename ===""){
                return false
               }
              var xmlhttp;
              if (window.XMLHttpRequest){
                xmlhttp=new XMLHttpRequest();
              }else{
                xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
             }
              xmlhttp.open("GET",filepath,false);
              xmlhttp.send();
              if(xmlhttp.readyState === 4){
              if(xmlhttp.status === 200) return true; //url存在
              else if(xmlhttp.status === 404) return false; //url不存在
              else return false;//其他状态
          }
       }

后续逻辑可以自行补充,如上可以测试出文件流是否存在,如果存在我们进行下载,如果不存在那么给出对应的提示,这样就解决了文件路径不存在跳转到空白页面的情况

补充:“流”是一个抽象的概念,它是对输入输出设备的一种抽象理解,在java中,对数据的输入输出操作都是以“流”的方式进行的。

总结:

我们遇到业务问题可以从前后端两个角度思考,学习分享获取新知,希望有更多的进步 ……

到此这篇关于JavaScript判断文件是否存在的文章就介绍到这了,更多相关JavaScript判断文件存在内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 利用javascript判断文件是否存在

    判断客户端文件时,可以用 复制代码 代码如下: var fso,s=filespec;   // filespec="C:/path/myfile.txt"fso=new ActiveXObject("Scripting.FileSystemObject");if(fso.FileExists(filespec))s+=" exists.";elses+=" doesn't exist.";alert(s); 判断服务器端(网

  • JavaScript下利用fso判断文件是否存在的代码

    复制代码 代码如下: function ReportFileStatus(filespec) { var fso, s = filespec; fso = new ActiveXObject("Scripting.FileSystemObject"); if (fso.FileExists(filespec)) s += " exists."; else s += " doesn't exist."; return(s); } 采用客户端的 Fi

  • javascript判断文件是否存在实例代码

     javascript判断文件是否存在 1. 客户端 <script language="javascript"> function FileExist() { var sfso=new ActiveXObject("Scripting.FileSystemObject"); var fPath="[The path of the file]"; if(sfso.FileExists(fPath)) { alert("Exi

  • Javascript判断文件是否存在(客户端/服务器端)

    分享下javascript判断文件是否存在的方法. 1,判断客户端文件时,可以用 var fso,s=filespec; // filespec="C:/path/myfile.txt" fso=new ActiveXObject("Scripting.FileSystemObject"); if(fso.FileExists(filespec)) s+=" exists."; else // www.jb51.net s+=" doe

  • JavaScript判断文件是否存在的实例代码

    一.业务场景 最近一直在做和文件上传和下载相关的开发,在涉及到下载的时候,我使用如下的方法进行下载 //获取或者赋值一个下载路径 let downUrl; //采用如下的方式可以直接下载文件 window.location.href = downUrl; 业务问题:如果这个文件不存在,会出现页面跳转的情况: 比如:1.刚好文件存储服务器挂机了 2.或者刚好文件存储服务器上的文件被人删除了 如上的不正常访问都会导致下载功能出现问题,对用户来说不友好的是出现页面跳转的情况 这里如果我们在下载的时候知

  • php is_writable判断文件是否可写实例代码

    php is_writable函数介绍 is_writable - 判断给定的文件名是否可写,该函数的结果会被缓存.请使用 clearstatcache() 来清除缓存. 语法: bool is_writable  ( string $filename  ) 如果文件存在并且可写则返回 TRUE .filename 参数可以是一个允许进行是否可写检查的目录名. 记住 PHP 也许只能以运行 webserver 的用户名(通常为 'nobody')来访问文件.不计入安全模式的限制. 参数: fil

  • JavaScript Base64 作为文件上传的实例代码解析

    例如我们用某些 裁剪插件 得到的图片是 <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAkCAYAAABIdFAMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAHhJREFUeNo8zjsOxCAMBFB/ KEAUFFR0Cbng3nQPw68ArZdAlOZppPFIBhH5EAB8b+Tlt9MYQ6i1BuqFaq1CKSVcxZ2Acs6406

  • JavaScript判断文件上传类型的方法

    本文实例展示了JavaScript判断文件上传类型的方法,是一个非常常用的技巧.具体实现方法如下: 文件上传时用到一个功能,使用html元素的input标签实现: <input id="imageFile" name="imageFile1" accept="image/jpg,image/jpeg,image/png,image/bmp,image/gif" type="file" title="点击选择文件

  • Java与WebUploader相结合实现文件上传功能(实例代码)

    之前自己写小项目的时候也碰到过文件上传的问题,没有找到很好的解决方案.虽然之前网找各种解决方案的时候也看到过WebUploader,但没有进一步深究.这次稍微深入了解了些,这里也做个小结. 简单的文件和普通数据上传并保存 jsp页面: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE h

  • BootStrap fileinput.js文件上传组件实例代码

    1.首先我们下载好fileinput插件引入插件 <span style="font-size:14px;"><link type="text/css" rel="stylesheet" href="fileinput/css/fileinput.css" rel="external nofollow" /> <script type="text/javascript

  • JS多文件上传的实例代码

    废话不多说了,具体实现代码如下所示: <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> <script src="./jquery-1.9.1.min.js"></script> </head> <body> <fo

  • PHP实现文件上传功能实例代码

    点击浏览,将所选的文件上传到创建的images文件夹内 代码如下: 1.wenjian.php <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml">

  • php多文件打包下载的实例代码

    最近整理文档,搜刮出一个php多文件打包下载的实例代码,稍微整理精简一下做下分享. 需要同时下载多个文件时,大部分浏览器都不支持多文件同时下载,可以采用JavaScript脚本动态生成多个链接,但是需要用户多次点击下载对话框,用户体验不好,并且有些浏览器还不兼容.此时多文件打包下载帮你解决这个问题. $filename = "test.zip"; $datalist=array('./pubfile/1.jpg','./pubfile/2.jpg'); if(!file_exists(

随机推荐