小编Kar*_*ner的帖子

PHP 7.2 finfo魔术文件

我有一个Laravel 5项目,我们让用户下载.ai(插图文件)。问题是Laravel将.ai文件检测为application / pdf。

我正在使用此功能检测MIME类型

$type = File::mimeType( $_path );
Run Code Online (Sandbox Code Playgroud)

我也尝试使用这种方法,但是得到了相同的结果

$finfo = finfo_open(FILEINFO_MIME);
$mimetype = $finfo->file($_path);
finfo_close($finfo);
Run Code Online (Sandbox Code Playgroud)

我认为,PHP不知道什么是.ai文件是一个问题。我对finfo进行了更深入的研究,我了解默认的mime定义已编译到PHP中,但是我看到finfo_open具有第二个参数“ magic_file”,我认为这是您可以在其中插入其他mime定义文件的路径的地方。 。

我尝试使用Ubuntu的/etc/magic.mime文件,但finfo给了我

ErrorException: finfo_open(): Warning: offset `application\/activemessage' invalid in
Run Code Online (Sandbox Code Playgroud)

错误。我认为这是因为magic.mime文件的格式不正确。

在线上的大多数主题都会创建自定义PHP函数或其他一些技巧来检测mime类型,但我觉得这不是这里的正确解决方案。

在哪里可以找到最新的mime定义文件,如何将它们加载到PHP或finfo中?

我的环境:

Ubuntu 16.04
PHP 7.2
Run Code Online (Sandbox Code Playgroud)

php mime-types libmagic

2
推荐指数
1
解决办法
802
查看次数

在 Angular2 视图模板中使用枚举

有趣的问题。我需要将 Angualar4 模板与枚举一起使用。

阿卡。

<div class="small-12 columns compliance-freq__item"
             [ngClass]="getComplianceFrequencyClasses( complianceFrequency, LicenceComplianceFrequency.QUARTERLY)"</div>
Run Code Online (Sandbox Code Playgroud)

请注意

LicenceComplianceFrequency.QUARTERLY

枚举声明如下

export enum LicenceComplianceFrequency {
    QUARTERLY               = "QUARTERLY",
    MONTHLY                 = "MONTHLY"
}
Run Code Online (Sandbox Code Playgroud)

这给了我一个模板错误,

无法读取未定义的 QUARTERLY 属性。

我尝试通过修改组件本身以多种方式将其与模板集成。

1) 模板中仍有未定义错误的季度

get LicenceComplianceFrequency() {
    return LicenceComplianceFrequency;
}
Run Code Online (Sandbox Code Playgroud)

2)(尖叫 LicenceComplianceFrequency 不是文件 *.ts 的可导出元素)

import {LicenceComplianceFrequency} from '....';
public LicenceComplianceFrequency = LicenceComplianceFrequency;
Run Code Online (Sandbox Code Playgroud)

有什么建议吗?

angular2-template angular

1
推荐指数
1
解决办法
3851
查看次数

Imagick - ImagickException 未授权 @ error/constitute.c/ReadImage/412 错误

我正在尝试将 pdf 加载到 imagick 中,但得到以下结果:

(1/1) ImagickException
not authorized `/var/sample.pdf' @ error/constitute.c/ReadImage/412
Run Code Online (Sandbox Code Playgroud)

我正在使用以下代码:

$imagick = new Imagick( '/var/sample.pdf' );
Run Code Online (Sandbox Code Playgroud)

Imagick 一直为我工作,但更新它后,任何文件,任何地方都会发生这种异常。该文件的权限为 777。我使用的是 Ubuntu Server 16.04 LTE。

有谁知道如何解决这个问题?

php ubuntu imagick

1
推荐指数
1
解决办法
4644
查看次数

Typescript 继承类作为函数参数

我在这里有一个打字稿问题。

I have many model classes, that are all inherited from BaseModel

class BaseModel {
    public isChecked: boolean;
}

class Animal extends BaseModel {
    public id: number;
}

class Car extends BaseModel {
    public hasHotWheels: boolean;
}
Run Code Online (Sandbox Code Playgroud)

Now I need to write a function that accepts arguments that are classes that inherit from the BaseModel. I can explicitly list all the classes, but I have more than 50 models that inherit from the BaseModel class, so my question is, can …

typescript angular

0
推荐指数
1
解决办法
1076
查看次数