DataTransferItem.getAsFile() - データをFileとして取得する
getAsFile()は、DataTransferItemのメソッドです。データをFileとして取得します。データの種類(kind)が"file"である必要があります。
概要
- 名前
- getAsFile
- 所属
- DataTransferItem
- IDL
File? getAsFile();
- 仕様書
- https://html.spec.whatwg.org/multipage/dnd.html#dom-datatransferitem-getasfile
説明
引数はありません。返り値はFileです。
対象の転送データの種類(kind)が"file"ではない場合、nullを返します。
デモ
DataTransferItem.getAsFile()のデモです。テキストや画像、ローカルファイルなどをドロップしてみて下さい。ファイルの場合だけ、Fileとして取得できます。ドロップしたファイルが当サイトのサーバーにアップロードされるようなことはありません。
<!-- このコードは編集できます。 -->
<!DOCTYPE html>
<html>
<head>
<style>
div#hoge {
width: 250px ;
text-align: center ;
padding: 24px 12px ;
background-color: blue ;
color: #fff ;
}
textarea { width: 250px ; height: 60px ; font-size: 16px ; }
div#result { white-space: pre-wrap ; }
</style>
</head>
<body>
<p><textarea>SYNCER</textarea></p>
<p><img src="./image.png" width="120" height="120"></p>
<hr>
<div id="hoge">drop here!</div>
<hr>
<div id="result"></div>
<script>
var element = document.getElementById( "hoge" ) ;
var callbackFn1 = function ( event ) {
event.preventDefault() ;
} ;
var callbackFn2 = function ( event ) {
event.preventDefault() ;
var dataTransferItemList = event.dataTransfer.items ;
console.log( dataTransferItemList ) ;
resultElement.innerHTML = "" ;
resultElement.appendChild( document.createTextNode( dataTransferItemList.length + "個のデータがあります。" + "\n\n" ) ) ;
for ( var i=0,l=dataTransferItemList.length; l>i; i++ ) {
var file = dataTransferItemList[i].getAsFile() ;
console.log( dataTransferItemList[i], file ) ;
resultElement.appendChild( document.createTextNode( "[" + i + "] " + dataTransferItemList[i] + "\n" ) ) ;
resultElement.appendChild( document.createTextNode( "\tkind: " + dataTransferItemList[i].kind + "\n" ) ) ;
resultElement.appendChild( document.createTextNode( "\ttype: " + dataTransferItemList[i].type + "\n" ) ) ;
resultElement.appendChild( document.createTextNode( "\tgetAsFile(): " + file + "\n\n" ) ) ;
}
} ;
element.ondragover = callbackFn1 ;
element.ondrop = callbackFn2 ;
var resultElement = document.getElementById( "result" ) ;
</script>
</body>
</html>
サポート状況
Chrome | Firefox | Safari | Edge | IE | Opera | iOS Safari | Android |
---|---|---|---|---|---|---|---|
● 30+ | ● 50+ | × | ● | × | ● 12+ | × | × |
関連記事
- DataTransferItem.getAsString()
- getAsString()は、DataTransferItemのメソッドです。データを文字列として取得します。データの種類(kind)が"string"である必要があります。取得したデータはメソッドの返り値として返すのではなく、引数のコールバック関数に渡されます。
- FileList
- FileListは、ファイルの一覧を表すオブジェクトです。file typeのinput要素などから取得できます。
- DataTransferItem.kind
- kindは、DataTransferItemのプロパティです。データの種類を表す文字列を返します。
- DataTransferItem.type
- typeは、DataTransferItemのプロパティです。データのmime typeを返します。