2016-10-12 4 views
-1

ファイルを一時的に配列のバイトとして保存できるアプリケーションを作成しました。それだけでPDF、DOCX、XLSXなど... が、質問のために、病気であるかどうかを指定entity.Type:私はと呼ばれる別のエンティティを持ってentity.FileUploadバイトを元のファイル形式にダウンロードし、ローカルドライブに保存

としてC#で私に利用でき、これを持っています「C:/温度」の下に自分のコンピュータ上で保存

  1. が、その後entity.FileUpload from its bunch of bytes, to a PDFとを変換する...
  2. :PDFの

    は今、この段階から、私はできるようにしたいを使用します。

私の質問です:このバイトをpdfに変換してから、自分のマシンにローカルにダウンロードできますか?そして、私は別のファイルタイプのコードの異なるブロックが必要な場合は、それは大丈夫です。この

を達成することについては行くだろうかそうならば、私は後日、その上に進行することができ、ありがとう。この問題

上の任意のヘルプ私は、フロントエンドにJavascriptを使用しています

は内のローカルデータベースに保存する:ファイルが保存されているどのように enter image description here

entity.FileUploadの下で私が見ることができるどのデータ

アプリケーションとして、以下に示す:

msls.readFile(screen, '.pdf', function (file, data) { 

     var pdf = myapp.activeDataWorkspace.LocalDatabase.Enquiries.addNew(); 

     pdf.FileName = file.name; 
     pdf.Type = file.type; 
     pdf.FileUpload= data; 

     myapp.activeDataWorkspace.LocalDatabase.saveChanges().done(function() { 
      msls.showMessageBox('PDF ' + file.name + ' imported.'); 
     }, function (error) { 
      msls.showMessageBox(error[0].message, { title: "Save Changes Error" }); 
     }); 
    }); 
  • ローカルデータベースはテスト目的のためにテーブルは、 "お問い合わせ先"
+0

最初にバイナリ文字列をデータベースに保存するにはどうすればよいですか?それはプロセスを元に戻す方法を理解するのに役立つかもしれません。 – Innat3

+0

[この回答を見る](http://stackoverflow.com/a/381529/3581917) - それはまったく役に立ちますか? 'entity.Type'を使ってパス(とファイルの名前)を判断する必要がありますが、あまり難しくありません。 –

+1

質問は「変換する」という意味です。バイト配列にPDFファイルの内容が含まれているのか、それとも別のものが含まれていますか? –

答えて

2

と呼ばれる "LocalDatabase"

  • と呼ばれているが、このような何かを試してみてください:

     SqlCommand cmd; 
         SqlConnection conn; 
         SqlDataReader dr; 
         string FileName = ""; 
         string FileType = ""; 
    
         //Get FileName And Type 
         cmd = new SqlCommand("SELECT FileName, FileType FROM YourTable WHERE YourCondition", conn); 
         dr = cmd.ExecuteReader(); 
         while (dr.Read()) 
         { 
          FileName = dr["FileName"].ToString(); 
          FileType = dr["FileType"].ToString(); 
         } 
    
         //Load the varbinary into a datatable 
         cmd = new SqlCommand("SELECT FileData FROM YourTable WHERE YourCondition", conn); 
         DataTable dt = new DataTable(); 
         dr = cmd.ExecuteReader(); 
         dt.Load(dr);  
    
         //Extract the rows into a byte array 
         byte[] stream = (byte[])dt.Rows[0][0]; 
    
         //Re-create the file from the byte array 
         File.WriteAllBytes(@"C:\Temp\" + FileName + FileType, stream); 
    
  • +0

    文字列連結よりも 'Path.Combine()'を使う方が良いでしょう。 –

    +0

    これは編集する必要があるサンプルです。私はちょうどそれをできるだけシンプルで理解しやすいようにしたいです – Innat3

    +0

    あなたの答えはよかったです。実際は、データベースにアップロードする前に傍受することができるので、あなたの答えがありがとう、それは動作します – Crezzer7

    関連する問題