PDA

View Full Version : سوال: ذخیره صفحه با فرمت .mht



maryam_272
چهارشنبه 26 مرداد 1390, 13:38 عصر
سلام
من می خواهم تو صفحه نمایش خبر دکمه ای از نوع imageButton بذارم که با زدن روی اون دکمه پنجره pop up save باز بشه و کابر مسیر و نام مورد نظر را تعیین کنه بعد این صفحه با فرمت .mht ذخیره بشه روی کامپیوتر کاربر

maryam_272
چهارشنبه 02 شهریور 1390, 16:54 عصر
نمی دونم چرا کسی جواب سوال منو نداد
من خودم تونستم یک صفحه را با پسوند .mht ذخیره کنم اما 2 تا مشکل دارم یکی اینکه فارسیاشو بد می نویسه
دوم اینکه می خوام پنجره save dialog box رو باز کنه و با توجه به مسیری که کاربر انتخاب می کنه فایل را ذخیره کنیم
ممنون میشم اگه ایندفعه جواب بدید


Private Sub BtnZakhire_Click(ByVal sender As Object, ByVal e As EventArgs)
panelSave = PanelPrint
SavePage("http://localhost:1096/N/Khabarha/SavePage.aspx?Id=" & id_khabar, "c:\downloads\namayeshkhabar" & id_khabar + ".mht")
End Sub
Private Sub SavePage(ByVal Url As String, ByVal FilePath As String)

Dim iMessage As CDO.Message = New CDO.Message

iMessage.CreateMHTMLBody(Url, CDO.CdoMHTMLFlags.cdoSuppressNone, "", "")

Dim adodbstream As ADODB.Stream = New ADODB.Stream

adodbstream.Type = ADODB.StreamTypeEnum.adTypeText

adodbstream.Charset = "US-ASCII"

adodbstream.Open()

iMessage.DataSource.SaveToObject(adodbstream, "_Stream")

adodbstream.SaveToFile(FilePath, ADODB.SaveOptionsEnum.adSaveCreateOverWrite)

End Sub

maryam_272
شنبه 05 شهریور 1390, 14:20 عصر
سلام
خوب مثل اینکه بد سایت سوت و کور البته انتظاری نداریم
من تونستم پنجره save رو باز کنم اما نمی دونم چرا فارسی رو بد می نویسه
کسی هست تو این زمینه به ما کمک کنه؟

unix2010
شنبه 05 شهریور 1390, 14:40 عصر
شاید به خاطر این هستش که شما از utf8 استفاده نکردین

maryam_272
شنبه 05 شهریور 1390, 16:03 عصر
کد adodbstream.Charset = "US-ASCII" را با کد
adodbstream.Charset = "utf-8" عوض کردم اما باز هم مشکل پا برجاست

hjran abdpor
شنبه 05 شهریور 1390, 16:50 عصر
سلام.
http://forums.asp.net/t/1532833.aspx/1

maryam_272
یک شنبه 27 شهریور 1390, 10:18 صبح
سلام
من بالاخره نتونستم جوابی که می خوام رو پیدا کنم واسه همین از روش ابدایی خودم استفاده کردم که به اینصورت
Private Sub BtnZakhire_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles BtnPrint.Click

Dim strRequest As String = "../../Save/namayeshkhabar" & id_khabar + ".mht"
panelSave = PanelPrint
SavePage("http://www.SoghatNews.com/N/Khabarha/SavePage.aspx?Id=" & id_khabar, Server.MapPath(strRequest))
Try
panelSave = PanelPrint

Dim path As String = Server.MapPath(strRequest)
'get absolute path of the file
Dim file As New System.IO.FileInfo(path)
'get file object as FileInfo
If file.Exists Then
'-- if the file exists on the server
Response.Clear()
'set apropriate headers
Response.AddHeader("Content-Disposition", "attachment; filename=" & file.Name)
Response.AddHeader("Content-Length", file.Length.ToString())
Response.ContentType = "application/...."
Response.WriteFile(file.FullName)
'if file does not exist
Response.[End]()
file.Delete()
Else
Response.Write("This file does not exist.")
'nothing in the URL as HTTP GET
End If

Catch rt As Exception
Response.Write(rt.Message)
End Try
End Sub
Private Sub SavePage(ByVal Url As String, ByVal FilePath As String)

Dim iMessage As CDO.Message = New CDO.Message

iMessage.CreateMHTMLBody(Url, CDO.CdoMHTMLFlags.cdoSuppressNone, "", "")

Dim adodbstream As ADODB.Stream = New ADODB.Stream

adodbstream.Type = ADODB.StreamTypeEnum.adTypeText

adodbstream.Charset = "Unicode" 'sets the stream encoding to UTF-8

adodbstream.Open()

iMessage.DataSource.SaveToObject(adodbstream, "_Stream")

adodbstream.SaveToFile(FilePath, ADODB.SaveOptionsEnum.adSaveCreateOverWrite)

End Sub

این توابع روی لوکال درست جولب میده اما روی اینترنت ارور میده عکس ارورش رو میذارم
http://www.pic.iran-forum.ir/images/14ub4g69lfi5al7zdb.gif
اگه کمکم کنید ممنون میشم