Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 是否有公共API返回给定文件类型的数据值?_Angularjs_Api_Download - Fatal编程技术网

Angularjs 是否有公共API返回给定文件类型的数据值?

Angularjs 是否有公共API返回给定文件类型的数据值?,angularjs,api,download,Angularjs,Api,Download,我正在做一个项目,涉及上传和下载文件。目前可以下载的文件只有.csv和.txt。我下载文件的方法如下: downloadFile(file).then( function (response) { var saving = document.createElement('a'); var filetype = file.fileName.split('.')[1]; if (filetype == 'csv') {

我正在做一个项目,涉及上传和下载文件。目前可以下载的文件只有.csv和.txt。我下载文件的方法如下:

downloadFile(file).then(
    function (response) {
        var saving = document.createElement('a');
        var filetype = file.fileName.split('.')[1];

        if (filetype == 'csv') {
            saving.href = 'data:attachment/csv,' + encodeURIComponent(response.data);
        } 
        else if (filetype == 'txt') {
            saving.href = 'data:plain/text,' + encodeURIComponent(response.data);
        }

        saving.download = file.fileName
        saving.click();
    },
    function (data) {
        console.log(data);
    }
);
我想支持下载任何文件类型,但有很多文件类型。显然,我可以像在上面的代码中那样继续迭代它们,但是由于文件类型的数量很大,即使我将所有if-else逻辑都推到一个单独的方法中,这也会很快失控


是否存在一个API,我可以将文件类型扩展名(即.csv)传递给该API,并在data:as-data:attachment/csv中接收要提供的适当值?如果没有,是有更好的方法来做我正在尝试做的事情,还是我坚持使用暴力方法?

我不知道有公共服务可以这样做,但你可以看看mime magic服务器端技术。它不仅查看文件扩展名,在某些情况下还查看文件内容以确定文件类型。例如,它可以确定.avi文件中mpeg4和mpeg2编码流之间的差异

查看一下您的平台的详细信息-从node.js到php,再到apache模块。。。等等