老师 在成功读取word内容和页数之后 我要将当前文件同步上传到二进制列中
运行提示 未将对象引用设置到对象的实例【如果是pdf的时候 就可以无误地上传并能够进行二进制文件的下载与预览】
麻烦老师看看 我这样的操作是不是顺序有误!还是代码需要哪里写不对了!
当前代码如下:
Dim dlg As New OpenFileDialog
dlg.Filter = "图形|*.bmp;*.jpg;*.gif;*.png|文件|*.txt;*.doc;*.docx;*.xls;*.xlsx;*.pdf;*.rar;*.zip;*.wps"
If dlg.ShowDialog =DialogResult.OK Then
Dim fl As String = dlg.FileName
Dim bb As String =FileSys.GetName(fl)
Dim Values() As String
Values = bb.split(".")
Dim ss1 As String
Dim ss2 As Integer
If Values(1).Contains("pdf") Then
Dim reader As New iTextSharp.text.pdf.PdfReader(fl)
Dim n As Integer = reader.NumberOfPages
Dim str As String = ""
For i As Integer = 1 To n
Dim strategy As object = New iTextSharp.text.pdf.parser.SimpleTextExtractionStrategy()
Dim currentText As String = iTextSharp.text.pdf.parser.PdfTextExtractor.GetTextFromPage(Reader, i, strategy)
currentText = Encoding.UTF8.GetString(ASCIIEncoding.Convert(Encoding.[Default], Encoding.UTF8, Encoding.[Default].GetBytes(currentText)))
str &= currentText
Next
output.show(str)
reader.Close()
ss1=str
wjnr.text=str
Else If Values(1).Contains("doc") Or Values(1).Contains("docx") Then
Dim app1 As New MSWord.Application
try
Dim fileName = fl
Dim Doc = app1.Documents.Open(fileName)
Dim count = doc.Characters.Count
Dim rng As MSWord.Range = Doc.Range(Start:=0, End:=count)
ss1=rng.Text
ss2 = doc.ComputeStatistics(Microsoft.Office.Interop.Word.WdStatistic.wdStatisticPages, Nothing)
wjnr.text=ss1
wjys.text=ss2
catch ex As exception
msgbox(ex.message)
finally
app1.Quit
End try
End If
Dim r As Row = Tables(e.Form.Name & "_table1").AddNew()
r("文件类型")=Values(1)
r("文件名") = wjm.text
r("文件类别") = wjlb.text
r("文件归类") = wjgl.text
r("uuid")=vars("uuid")
r("文件时间") = wjsj.text
r("文件页数") = wjys.text
r("单位名称")=dwmc.text
r("人员名称")=rymc.text
r("身份证号")=sfzh.text
r("所属室组")=sssz.text
r("文件内容")=ss1
r("文件页数") = ss2
r.Save '必须先保存
r.DataRow.SQLInsertFile("附件",fl) '插入文件
r.DataRow.SQLSetValue("CRC值", CRCCheckFile(fl)) '保存crc检验值
MessageBox.Show("附件上传完毕!","温馨提示")
'Dim ylbt As WinForm.Button = e.Form.Controls("预览")
'ylbt.PerformClick
End If