ここの他の皆が述べたように:JavaScriptでファイルを自動的にアップロードすることはできません。
しかしながら! コードで送信したい情報(つまり、passwords.txtではない)にアクセスできる場合は、それをblobタイプとしてアップロードして、ファイルとして扱うことができます。
サーバーが最終的に見るものは、実際にの値を設定している誰かと区別がつかなくなります<input type="file" />
。トリックは、最終的には、サーバーで新しいXMLHttpRequest()を開始することです...
function uploadFile (data) {
// define data and connections
var blob = new Blob([JSON.stringify(data)]);
var url = URL.createObjectURL(blob);
var xhr = new XMLHttpRequest();
xhr.open('POST', 'myForm.php', true);
// define new form
var formData = new FormData();
formData.append('someUploadIdentifier', blob, 'someFileName.json');
// action after uploading happens
xhr.onload = function(e) {
console.log("File uploading completed!");
};
// do the uploading
console.log("File uploading started!");
xhr.send(formData);
}
// This data/text below is local to the JS script, so we are allowed to send it!
uploadFile({'hello!':'how are you?'});
それで、これを何に使うことができるでしょうか?HTML5キャンバス要素をjpgとして アップロードするために使用します。これにより、ユーザーはfile
input
要素を開く必要がなくなり、サイズ変更や変更などを行ったローカルのキャッシュされた画像を選択するだけで済みます。ただし、どのファイルタイプでも機能するはずです。