2014-04-09 2 views
0
var graphids = from o in db.OfflineCarts 
           join i in db.Graphs on o.ItemId equals i.ItemUserID 
           select i; 

      GridView gv = new GridView(); 
      gv.DataSource = graphids.ToList(); 
      gv.DataBind(); 
      Response.ClearContent(); 
      Response.Buffer = true; 
      Response.AddHeader("content-disposition", "attachment; filename=GraphTable.xls"); 
      Response.ContentType = "application/ms-excel"; 
      Response.Charset = ""; 
      StringWriter sw = new StringWriter(); 
      HtmlTextWriter htw = new HtmlTextWriter(sw); 
      gv.RenderControl(htw); 
      Response.Output.Write(sw.ToString()); 
      Response.Flush(); 
      Response.End(); 
      Encryption(); 


    public void Encryption() 
    { 

     string password = @"myKey123"; // Your Key Here 
     UnicodeEncoding UE = new UnicodeEncoding(); 
     byte[] key = UE.GetBytes(password); 

     string cryptFile = "/Users/Neeraj/Downloads/UserFilesEncrypt.xls"; 
     FileStream fsCrypt = new FileStream(cryptFile, FileMode.CreateNew); 

     RijndaelManaged RMCrypto = new RijndaelManaged(); 
     CryptoStream rs = new CryptoStream(fsCrypt, 
      RMCrypto.CreateEncryptor(key, key), 
      CryptoStreamMode.Read); 

     CryptoStream cs = new CryptoStream(fsCrypt, 
      RMCrypto.CreateEncryptor(key, key), 
      CryptoStreamMode.Write); 

     string inputFile = "/Users/Neeraj/Downloads/GraphTable.xls"; 
     FileStream fsIn = new FileStream(inputFile, FileMode.Open); 

     int data; 
     while ((data = fsIn.ReadByte()) != -1) 
      cs.WriteByte((byte)data); 

     fsIn.Close(); 
     cs.Close(); 
     fsCrypt.Close(); 

    } 

나는 그것이 mvc5에 그리드 뷰에서 다운로드 바로 즉시 후 파일을 암호화하고하지만 난 0 바이트 암호화 된 파일을 받고 내가 적절한 암호화 된 파일을 얻고보다 내가 파일을 다운로드 재입니다 때 수 있어요 누구나 코드에 어떤 문제가 있는지 말해 아니면 내가 언제파일 암호화

답변

1

사용 System.Security에 대한 다운로드 후 암호화 기능을 지연해야

FileStream fsInput = new FileStream(sInputFilename, 
       FileMode.Open, 
       FileAccess.Read); 

FileStream fsEncrypted = new FileStream(sOutputFilename, 
       FileMode.Create, 
       FileAccess.Write);