[Share Experiences] 浏览器上传文件,MIME类型,与windows不兼容问题处理
Tofloor
poster avatar
千里🙏般若
deepin
2022-05-18 19:02
Author

问题描述:

在deepin 20.5下,打开一个项目web页面,上传文件,总是提示类型不对, 换浏览器无效。但是在windows下可以正常通过。

原因分析:

浏览器js获取上传文件的MIME类型,.tar.gz, .zip。在windows下是 ‘‘application/x-gzip’’, "application/x-zip", 在deepin下是‘‘application/gzip’’, "application/zip"。

导致浏览器js代码判断不通过,js代码如下:

if (file.type !== 'application/x-zip' && file.type !== 'application/x-compressed-tar' && file.type !== 'application/x-gzip') {
      return message.warning({
        content: '请上传.zip或.tar.gz文件!',
      });
    }

问题处理:

手动变更linux的MIME类型:

cd /usr/share/mime/packages

sed -i 's#application/zip#application/x-zip#g' *

sed -i 's#application/gzip#application/x-gzip#g' *

update-mime-database /usr/share/mime

问题解决

Reply Favorite View the author
All Replies
神末shenmo
deepin
Spark-App
Q&A Team
2022-05-18 19:23
#1

@陌生人 这个是不是也是Windows下无法投稿的缘故?

Reply View the author
千里🙏般若
deepin
2022-05-18 19:30
#2
神末shenmo

@陌生人 这个是不是也是Windows下无法投稿的缘故?

windows下可以通过验证

Reply View the author
陌生人
deepin
2022-05-18 19:40
#3
神末shenmo

@陌生人 这个是不是也是Windows下无法投稿的缘故?

差不多,不过deb包具体在win下识别成什么样子我不知道

Reply View the author
陌生人
deepin
2022-05-18 19:42
#4
神末shenmo

@陌生人 这个是不是也是Windows下无法投稿的缘故?

我发现有人艾特我的话在消息中心好像没提示,这还是我自己硬刷到的

Reply View the author
神末shenmo
deepin
Spark-App
Q&A Team
2022-05-18 21:36
#5
千里🙏般若

windows下可以通过验证

星火的投递工具在Windows下不可用,因为mimetype不一样

不知道在win下deb是啥

Reply View the author
zccrs
deepin
2022-05-19 17:40
#6

"application/gzip’’, "application/zip" 按理说这种才是标准的。

Reply View the author
zccrs
deepin
2022-05-19 17:40
#7
zccrs

"application/gzip’’, "application/zip" 按理说这种才是标准的。

js代码中为了兼容性应该多判断几种

Reply View the author
千里🙏般若
deepin
2022-05-19 19:14
#8
zccrs

js代码中为了兼容性应该多判断几种

正常来说是应该改前端,做兼容😂。但是我不是前端,没有权限改代码。如果遇到这种项目或者已经投入生产的网站,只能用这种方法

Reply View the author