我需要从我的服务器上的网址图片中找出文件类型而不检查扩展程序,但我不知道如何在不将图像放入"输入的情况下如何做到这一点。像这样:
def f(arr:List[Int]) : List[Int] = {
def odd_concat(list_odd:List[Int], arr_index:Int) : List[Int] = {
if(arr_index == arr.size) {
list_odd
}
else if(arr_index % 2 == 0) {
odd_concat(list_odd, arr_index + 1)
}
else {
//println(arr(arr_index))
list_odd:+arr(arr_index)
odd_concat(list_odd, arr_index + 1)
}
}
odd_concat(List(), 0)
}
我理解" .type"仅适用于文件对象,因此如何将网址图像转换为像google徽标图片https://www.google.ca/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png这样的对象。 我需要使用ajax / flilereader吗?如果是这样,怎么样?
答案 0 :(得分:2)
accept
属性值无效。应该使用逗号,
而不是|
个MIME
字符来管道change
。
您可以使用File
事件来检查.type
对象<input type="file" id="upload_file" accept="image/*,audio/*,video/*"/>
<input type="submit" onclick="submit()"/>
<script type="text/javascript">
var elem = document.getElementById("upload_file");
elem.onchange = function(e) {
console.log(e.target.files[0].type)
}
function submit() {
if (elem.files.length) {
console.log(elem.files[0].type)
} else {
alert("no files selected")
}
}
</script>
key, value
答案 1 :(得分:2)
使用XHR下载文件,然后使用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();
api确定mime类型:
SublimeText\Packages\User
答案 2 :(得分:2)
假设您的Content-Type
HTTP标头准确无误,您可以通过创建HEAD
请求来避免下载整个文件以检查类型。假设您还不需要整个文件,这可能会更快,特别是对于大文件。
var xhr = new XMLHttpRequest();
xhr.open('HEAD', 'https://crossorigin.me/http://placehold.it/350x150', true);
xhr.onload = function() {
var contentType = xhr.getResponseHeader('Content-Type');
console.log(contentType);
};
xhr.send();
或者,您可以通过在加载整个主体之前在AJAX请求对象上调用GET
来获得与常规abort
请求类似的结果(无论如何在任何最近的远程浏览器中)。
var xhr = new XMLHttpRequest();
xhr.open('GET', 'https://crossorigin.me/http://placehold.it/350x150', true);
xhr.onreadystatechange = function() {
// Wait for header to become available.
var contentType = xhr.getResponseHeader('Content-Type');
if (contentType) {
// Stop downloading, the headers are all we need.
xhr.abort();
console.log(contentType);
}
};
xhr.send();