html5入力フィールドから返されたファイルオブジェクトからパスを取得するにはどうすればよいですか?
基本的に phonegap アプリは、オンラインに接続してサードパーティの Web サイトからサウンド ファイルをダウンロードし、ダウンロードしたファイルを参照してローカル ディレクトリに移動するように設定されています。(1 秒未満の短いサウンド ファイル)。
問題は、ファイル オブジェクトの属性 .fullPath が定義されていないことです。getFile は [object File] 入力ではなく、パス入力を取ります。
次のコードから:
<input style="opacity:0;" type="file" name="soundInput" id="soundInput"/>
<script type="text/javascript" charset="utf-8">
var soundInput = document.getElementById('soundInput');
soundInput.addEventListener('change', function(){handleFileSelect(type);}, false);
soundInput.click();
function handleFileSelect() {
var file = this.files[0]; // FileList object
var type = isThumpy;
alert("file = " + file.name + "\n full path = " + file.fullPath);
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fs) {
gotFS(fs,file,type);
}, fail);
}
function fail(error) {
alert("error " + error.code);
}
function gotFS(fileSystem, file, type) {
alert("got filesystem");
var flags = {create: false, exclusive: false};
fileSystem.root.getFile(file, flags, function(fe){
gotFileEntry(type,fe);
},fail);
}
function gotFileEntry(type, fileEntry) {
alert("got fileEntry");
fileEntry.copyTo(path, function(fe){successfulCopy(type, fe);}, fail);
}
function successfulCopy(type, fileEntry) {
alert("copy success");
setSoundByUri(type, fileEntry.name)
}
</script>
「ファイルシステムを取得しました」を通過せず、エラー (「エラー」 + error.code) をスローしません。助けてください。