我已经创建了一个应用程序,它允许我暂时将文件保存为数组中的一堆字节。我在C#中将此作为entity.FileUpload
我有另一个名为entity.Type
的实体,它指定它是PDF,DOCX,XLSX等...... 但是为了这个问题,生病只使用PDF < / EM>
现在从这个阶段开始,我希望能够:
entity.FileUpload from its bunch of bytes, to a PDF
然后...... 所以我的问题是:是否可以将此字节转换为pdf,然后将其本地下载到我的机器上?如果是,我将如何实现这一目标
如果我需要针对不同文件类型的不同代码块,那么这是可以的,我可以在以后进行,但是对于此问题的任何帮助
文件的保存方式:
我在前端使用Javascript保存到应用程序中的本地数据库,如下所示:
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 :(得分:2)
尝试这样的事情:
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);