peinhu / AetherUpload-Laravel

A Laravel package to upload large files 上传大文件的Laravel扩展包
GNU General Public License v2.0
919 stars 126 forks source link

上传exe文件显示错误的文件类型 #57

Closed Sanbingduizhang closed 5 years ago

Sanbingduizhang commented 5 years ago

源码中的'exe' 对应的是 'application/x-msdownload', 可是我在上传exe文件之后得到的exe对应的是application/x-dosexec 网上说application/x-dosexec是application/x-msdownload的子类,但是MimeType.php中的类型检测会返回null,导致上传exe文件失败

peinhu commented 5 years ago

@Sanbingduizhang
你好,感谢提交问题,如果你使用的版本是最新的v2.0.6,可以在配置文件'config/aetherupload.php'中的extra_mime_types项对应数组中填入'exe' => 'application/x-dosexec',即类似'extra_mime_types' => ['exe' => 'application/x-dosexec'],,这样可以覆盖原有定义。
如果你的版本低于v2.0.6,那只能直接修改本扩展包中的'src/MimeType.php'文件了。

peinhu commented 5 years ago

2.0版本以上直接升级到2.0.6也可以,没有什么大的结构改动,应该不会影响原有文件的。

Sanbingduizhang commented 5 years ago

谢谢。 我用的是2.0版本的,现在我升到2.0.6试试。

peinhu commented 5 years ago

@Sanbingduizhang 更新前最好备份一下配置文件'config/aetherupload.php'。如果你之前启用了秒传功能,更新后还需要运行一次命令php artisan aetherupload:build来重建redis中的秒传列表。前端调用方面也略有改动,比原来更灵活了一些,详见example.blade.php文件。

peinhu commented 5 years ago

更新后先改配置,然后看看以前上传的文件还能不能通过原有链接访问。

Sanbingduizhang commented 5 years ago

谢谢,可以使用的。 我是把原有的控制器方法抽出来重写一些内容,写好接口供前端调用的,更新包之后可以使用。 不过要改的东西确实不少

chanble commented 5 years ago

发现mime_content_type获取的mine是application/x-dosexec, 需要再配置文件extra_mime_types加上


    'extra_mime_types' => [
        ...
        'exe' => 'application/x-dosexec',
    ],