2016-11-08 3 views
-1

暗号化してクライアント側のフォルダからファイルをダウンロードしようとしています。私は以下のコードを持っていますが、実際に暗号化されたファイルはダウンロードされていません。ダウンロードURLを作成すると、問題が発生しています。暗号化されたファイルを自動ダウンロードする

<!DOCTYPE html> 
<html> 
<head> 
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" /> 
<title>Get Directory</title> 
<!-- Update your jQuery version??? --> 
<script src="http://cdnjs.cloudflare.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> 
<script src="assets/js/aes.js"></script> 
<script> // type="text/javascript" is unnecessary in html5 

// Short version of doing `$(document).ready(function(){` 
// and safer naming conflicts with $ 
jQuery(function($) { 

    $('#file-input').on('change', function() { 

     // You can't use the same reader for all the files 
     var array1 = new Array 

     $.each(this.files, function(i, file) { 

      // Uses different reader for all files 
      var reader = new FileReader 
      var downloadUrl = '' 
      reader.onload = function() { 
       // reader.result refer to dataUrl 
       // theFile is the blob... CryptoJS wants a string... 
       var encrypted = CryptoJS.AES.encrypt(reader.result, '12334') 
       downloadUrl = 'data:application/octet-stream,' + encrypted; 
       array1.push(downloadUrl); 
       setTimeout("window.location.assign('" + downloadUrl + file.name + '.encrypted'+ "');", 500) 
      } 

      reader.readAsDataURL(file) 
      $('#thelist').append('FILES: ' + file.name + '<br>') 

     }) 

    }) 
}) 
</script> 
</head> 
<body> 
<input type="file" id="file-input" webkitdirectory="" directory=""> 
<div id="thelist"></div> 
</body> 
</html> 
+0

暗号化されたファイルをダウンロードしたいだけです。私はファイルが暗号化された後、ブラウザのサンドボックスに保存されていると信じています。 – Noob

+0

コードが表示された場合は、サーバー側のコードは表示されません。私はどのサーバーにもファイルを送信していないので、その内容を_data uri_という名前で保存しています。これをボタンの属性として設定してonClick中に呼び出すことはできますが、ボタンなしで行うことができます。 – Noob

+0

暗号化されたファイルをクライアント側に保存します。 – Noob

答えて

0

誰もがこの1を探している場合は、私は以下のようにそれを解決することができました。

   var reader = new FileReader(); 
       reader.onload = function (e) { 
       var encrypted = CryptoJS.AES.encrypt(reader.result, '12345'); 
       var dataUrl = 'data:data:application/octet-stream,' + encrypted; 
       array1.push('href=data:data:application/octet-stream,' + encrypted); 

       var link = document.createElement("a"); 
       link.download = file.name + '.encrypted'; 
       link.target = "_blank"; 

       // Construct the uri 
       link.href = dataUrl; 
       document.body.appendChild(link); 
       link.click(); 

       // Cleanup the DOM 
       document.body.removeChild(link); 
       delete link; 
       }; 
       $('#thelist').append('FILES: ' + file.name + '<br>') 
       reader.readAsDataURL(file); 
       }) 
関連する問題