Javascript 从URL获取文件类型
我需要在不检查扩展名的情况下从服务器上的url图像中查找文件类型,但如果不将图像放入如下“输入”中,我不确定如何执行此操作:Javascript 从URL获取文件类型,javascript,Javascript,我需要在不检查扩展名的情况下从服务器上的url图像中查找文件类型,但如果不将图像放入如下“输入”中,我不确定如何执行此操作: <input type="file" id="upload_file" accept="image/*|audio/*|video/*"/> <input type="submit" onclick="sumbit()"/> <script type="text/javascript"> function sumbit(
<input type="file" id="upload_file" accept="image/*|audio/*|video/*"/>
<input type="submit" onclick="sumbit()"/>
<script type="text/javascript">
function sumbit(){
var file_Element = document.getElementById("upload_file")
alert(file_Element.files[0].type);
//alert: image/png
}
<script>
函数sumbit(){
var file\u Element=document.getElementById(“上传文件”)
警报(文件\元素。文件[0]。类型);
//警报:图像/png
}
我知道“.type”只适用于文件对象,那么如何将url图像转换为类似以下谷歌徽标图像的对象:。
我需要使用ajax/flilereader吗?如果是,如何处理?属性值无效。应该有逗号
,
而不是管道|
字符分隔MIME
类型
您可以使用change
事件来检查文件对象。键入
var elem=document.getElementById(“上传文件”);
elem.onchange=函数(e){
console.log(e.target.files[0].type)
}
函数提交(){
if(elem.files.length){
console.log(元素文件[0]。类型)
}否则{
警报(“未选择任何文件”)
}
}
接受属性值无效。应该有逗号,
而不是管道|
字符分隔MIME
类型
您可以使用change
事件来检查文件对象。键入
var elem=document.getElementById(“上传文件”);
elem.onchange=函数(e){
console.log(e.target.files[0].type)
}
函数提交(){
if(elem.files.length){
console.log(元素文件[0]。类型)
}否则{
警报(“未选择任何文件”)
}
}
使用XHR下载文件,然后使用Blob
api确定mime类型:
var xhr = new XMLHttpRequest();
xhr.open('GET', '/path/to/image.png', true);
xhr.responseType = 'blob';
xhr.onload = function(e) {
//Here's the type
console.log(xhr.response.type);
};
xhr.send();
使用XHR下载文件,然后使用Blob
api确定mime类型:
var xhr = new XMLHttpRequest();
xhr.open('GET', '/path/to/image.png', true);
xhr.responseType = 'blob';
xhr.onload = function(e) {
//Here's the type
console.log(xhr.response.type);
};
xhr.send();
假设您的内容类型
HTTP头是准确的,您可以通过创建头
请求避免下载整个文件来检查类型。假设您不需要将整个文件用于其他操作,这可能是一个更快的操作,尤其是对于大型文件
工作示例:
var xhr=new-XMLHttpRequest();
xhr.open('头部','https://crossorigin.me/http://placehold.it/350x150",对),;
xhr.onload=函数(){
var contentType=xhr.getResponseHeader('Content-Type');
console.log(contentType);
};
xhr.send()
假设您的内容类型
HTTP头是准确的,您可以通过创建头
请求来避免下载整个文件只是为了检查类型。假设您不需要将整个文件用于其他操作,这可能是一个更快的操作,尤其是对于大型文件
工作示例:
var xhr=new-XMLHttpRequest();
xhr.open('头部','https://crossorigin.me/http://placehold.it/350x150",对),;
xhr.onload=函数(){
var contentType=xhr.getResponseHeader('Content-Type');
console.log(contentType);
};
xhr.send()代码>可能重复的您是否愿意在服务器端执行文件类型检测?“我需要从位于我的服务器上的url图像中查找文件类型”图像如何上载到您的服务器?你所说的“将图像输入”是什么意思?在不知道文件名和扩展名的情况下,如何从服务器请求图像?不能保证MIME类型或扩展名能够准确识别文件的实际内容。您可以检查文件的前几个字节是否有幻数,但这并不是100%准确。您可能想更具体地说明将图像放入“输入”中意味着什么“类型”?“html输入标签”必须重新编辑该问题,但没有显示。您是否愿意在服务器端执行文件类型检测?可能重复?“我需要从我服务器上的url图像中查找文件类型”图像如何上载到您的服务器?你所说的“将图像输入”是什么意思?在不知道文件名和扩展名的情况下,如何从服务器请求图像?不能保证MIME类型或扩展名能够准确识别文件的实际内容。您可以检查文件的前几个字节是否有幻数,但这并不是100%准确。您可能想更具体地说明将图像放入“输入”中意味着什么“类型”?“html输入标签”不得不重新编辑这个问题,它没有显示出来。这就是我要找的,我要测试一下。谢谢。“使用XHR下载文件”如何从用户文件系统下载文件?注意,
的文件返回的文件
对象继承自Blob
您不会从用户文件系统下载它。OP说“从我服务器上的一个url图像”@Danny“这就是我要找的”你是什么意思?回答时的方法不使用
?无法从用户“下载”文件filesystem@FrankerZ从xhr.response
创建一个新的Blob
的目的是什么<代码>var blob=新blob([xhr.response])代码>不是必需的xhr.response
已经是一个Blob
这就是我要找的,我要测试一下。谢谢。“使用XHR下载文件”如何从用户文件系统下载文件?注意,
的文件返回的文件
对象继承自Blob
您不会从用户文件系统下载它。OP说“从我服务器上的一个url图像”@Danny“这就是我要找的”你是什么意思?回答时的方法不使用
?无法从用户“下载”文件filesystem@FrankerZ创建一个新项目的目的是什么<