STLファイルを読み込んで表示する機能の一部です。 ファイル入力を使用してユーザーがアップロードしたファイルを受け取り、FileReader APIを使用してファイルを読み取るopenFile
に渡します。JavaScriptのFileReader APIに既存のサーバーファイルを渡す
window.addEventListener("load", function() {
...
...
// file load
var openFile = function (file) {
console.log(file);
var reader = new FileReader();
reader.addEventListener("load", function (ev) {
var buffer = ev.target.result;
var geom = loadStl(buffer);
scene.remove(obj);
obj = new THREE.Mesh(geom, mat);
scene.add(obj);
}, false);
reader.readAsArrayBuffer(file);
};
// file input button
var input = document.getElementById("file");
input.addEventListener("change", function (ev) {
var file = ev.target.files[0];
openFile(file);
}, false);
}, false);
しかし、私のサーバー上に存在するopenFile
にファイルを渡したいとします。
私が使用して試してみました:
var file = new File ("myfile.stl");
openFile(file);
が、それは動作しません。
をちょっと感謝。 私はあなたが言っていることを理解しました。 どうすればAJAX 'xhttpRequest'を使って私のサーバからローカルJSにファイルをロードし、それを' FileReader'に渡しますか? – user3828862
私はあなたがリモートファイルのために 'FileReader'を必要としないかもしれないと思います。 [ArrayBuffer](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer)を参照してください。私は 'load'イベントハンドラのように直接バッファを扱う必要があると思います。 –
それは完璧に働いた。どうもありがとうございます :) :) – user3828862