dhr*_*tel 25 html file-upload file
以下内容将允许用户仅选择指定类别的图像文件.
<input id="file" type="file" name="file" size="30"
accept="image/jpg,image/png,image/jpeg,image/gif"
/>
Run Code Online (Sandbox Code Playgroud)
但是,问题是它会在文件对话框中显示"自定义文件"作为文件描述,这会使用户对应该选择的文件类型感到困惑.
我的问题是:有没有更好的方法我可以将文本"自定义文件"修改为"图像文件"
注意:如果我提供的"image/*"会在文件描述中显示"Image Files",但我不想让用户选择所有类型的图像文件,只想限制为指定的格式.
提前感谢您的意见.
Joh*_*esB 33
正如我所预料的那样,这是不可能的.它<input type="file" />
是受保护程度最高的浏览器元素之一,因此浏览器元素最少.浏览器如此小心处理文件输入的原因是因为他们不希望冒险攻击者访问您的文件(即使看到您的文件夹结构会很糟糕).
您可能无法自由更改过滤器框中可见的文本,但仍有希望.实际上,在某些情况下,可以选择出现的文本.一个很大的缺点是,它完全不兼容浏览器,可能与操作系统不兼容.
还有另一个原因,为什么浏览器允许编辑该文本可能是一个坏主意,它可能被用来误导用户(例如文本喜欢We're watching you
或FATAL WINDOWS ERROR
可能吓唬用户).此外它不应该,但可能导致可能的漏洞,用户试图在现场运行某种C代码,授予他们机器访问权限,可能以灾难性的方式损害您的计算机.
上面我说过有可能改变可见的过滤文本.下面我处理了一些我尝试过的东西,但是在我为测试目的而创建的这个codepen上,请不要犹豫,亲自尝试这个:https://codepen.io/JohannesB/pen/vKGoyE
其他文件类型的可能灵感我没有测试(随意编辑这篇文章):https://stackoverflow.com/a/14839673/1493235
我相信文件接受参数的选择可以产生有趣的结果:application/msword,application/rtf,application/octet-stream,application/octet-stream exe,application/zip,text/css,text/html,text/plain
image/*
,video/*
和audio/*
Video/x-msvideo avi
Aplication/pdf
自定义过滤器文本,但IE确实是noet.Text/*
并且具有自定义文本标题的浏览器.exe
对于flash上传器,这个文本可能是可定制的,但我对它非常怀疑.另外,flash已弃用,所以在我看来这不值得尝试.
免责声明:以下使用的示例使用Internet Explorer v11.0.9600,Chrome v51.0.2704.84m和Firefox v46.0.1在Windows 7计算机上运行.我无法保证它们代表其他操作系统,其他浏览器版本甚至相同浏览器版本的正确信息.请谨慎使用此信息.
音频/*
应用/*
应用程序/ PDF格式
图片/*
文本/*
视频/*
视频/ x-msvideo avi
.可执行程序
图片/*,视频/*
图像/*,.exe
音频/*
应用/*
应用程序/ PDF格式
图片/*
文本/*
视频/*
视频/ x-msvideo avi
.可执行程序
图片/*,视频/*
图像/*,.exe
音频/*
应用/*
应用程序/ PDF格式
图片/*
文本/*
视频/*
视频/ x-msvideo avi
.可执行程序
图片/*,视频/*
图像/*,.exe