commit prototype upload script
parent
d7bdb30969
commit
3560f0580f
@ -0,0 +1,34 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta content="text/html; charset=utf-8" http-equiv="content-type"/>
|
||||||
|
<script data-main="main" src="/bower_components/requirejs/require.js"></script>
|
||||||
|
<script>
|
||||||
|
require.config({
|
||||||
|
waitSeconds: 60,
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
<link rel="icon" type="image/png"
|
||||||
|
href="/customize/main-favicon.png"
|
||||||
|
|
||||||
|
data-main-favicon="/customize/main-favicon.png"
|
||||||
|
data-alt-favicon="/customize/alt-favicon.png"
|
||||||
|
id="favicon" />
|
||||||
|
<style>
|
||||||
|
input {
|
||||||
|
width: 50vw;
|
||||||
|
padding: 15px;
|
||||||
|
}
|
||||||
|
pre {
|
||||||
|
max-width: 90vw;
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>Upload</h1>
|
||||||
|
|
||||||
|
<input type="file">
|
||||||
|
|
@ -0,0 +1,75 @@
|
|||||||
|
define([
|
||||||
|
'/common/cryptget.js',
|
||||||
|
'/bower_components/chainpad-crypto/crypto.js',
|
||||||
|
'/bower_components/jquery/dist/jquery.min.js',
|
||||||
|
], function (Crypt, Crypto) {
|
||||||
|
var $ = window.jQuery;
|
||||||
|
var Nacl = window.nacl;
|
||||||
|
|
||||||
|
var key = Nacl.randomBytes(32);
|
||||||
|
|
||||||
|
var handleFile = function (body) {
|
||||||
|
//console.log("plaintext");
|
||||||
|
//console.log(body);
|
||||||
|
|
||||||
|
0 && Crypt.put(body, function (e, out) {
|
||||||
|
if (e) { return void console.error(e); }
|
||||||
|
if (out) {
|
||||||
|
console.log(out);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
var data = {};
|
||||||
|
|
||||||
|
(_ => {
|
||||||
|
var cyphertext = data.payload = Crypto.encrypt(body, key);
|
||||||
|
console.log("encrypted");
|
||||||
|
console.log(cyphertext);
|
||||||
|
|
||||||
|
console.log(data);
|
||||||
|
|
||||||
|
var decrypted = Crypto.decrypt(cyphertext, key);
|
||||||
|
//console.log('decrypted');
|
||||||
|
//console.log(decrypted);
|
||||||
|
|
||||||
|
|
||||||
|
if (decrypted !== body) {
|
||||||
|
throw new Error("failed to maintain integrity with round trip");
|
||||||
|
}
|
||||||
|
|
||||||
|
// finding... files are entirely too large.
|
||||||
|
|
||||||
|
|
||||||
|
console.log(data.payload.length, body.length); // 1491393, 588323
|
||||||
|
console.log(body.length / data.payload.length); // 0.3944788529918003
|
||||||
|
console.log(data.payload.length / body.length); // 2.534990132971174
|
||||||
|
|
||||||
|
/*
|
||||||
|
|
||||||
|
http://stackoverflow.com/questions/19959072/sending-binary-data-in-javascript-over-http
|
||||||
|
|
||||||
|
// Since we deal with Firefox and Chrome only
|
||||||
|
var bytesToSend = [253, 0, 128, 1];
|
||||||
|
var bytesArray = new Uint8Array(bytesToSend);
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
url: '%your_service_url%',
|
||||||
|
type: 'POST',
|
||||||
|
contentType: 'application/octet-stream',
|
||||||
|
data: bytesArray,
|
||||||
|
processData: false
|
||||||
|
});
|
||||||
|
*/
|
||||||
|
})();
|
||||||
|
};
|
||||||
|
|
||||||
|
var $file = $('input[type="file"]');
|
||||||
|
$file.on('change', function (e) {
|
||||||
|
var file = e.target.files[0];
|
||||||
|
var reader = new FileReader();
|
||||||
|
reader.onload = function (e) {
|
||||||
|
handleFile(e.target.result);
|
||||||
|
};
|
||||||
|
reader.readAsText(file);
|
||||||
|
});
|
||||||
|
});
|
Loading…
Reference in New Issue