Bloodholder Ansih Ответов: 2

PDF файл будет просмотрен непосредственно мне не нужно скачивать


<div>
       <asp:FileUpload ID="FileUpload1" runat="server" />
       <asp:Button ID="btnUpload" runat="server" Text="Upload" OnClick="Upload" />
       <hr />
       <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
           <Columns>
               <asp:BoundField DataField="Name" HeaderText="File Name" />
               <asp:TemplateField ItemStyle-HorizontalAlign="Center">
                   <ItemTemplate>
                       <asp:LinkButton ID="lnkView" runat="server" Text="View" OnClick="View" CommandArgument='<%# Eval("Id") %>'></asp:LinkButton>
                   </ItemTemplate>
               </asp:TemplateField>
           </Columns>
       </asp:GridView>
       <hr />
       <div>
           <asp:Literal ID="ltEmbed" runat="server" />
       </div>
   </div>



<pre lang="vb"><pre lang="vb">

Imports System.IO
Imports System.Data
Imports System.Data.SqlClient
Imports System.Configuration
Imports Framework

Public Class dap_trn_documentupload
    Inherits System.Web.UI.Page
    Dim objdbconn As New dbconn
    Dim msSQL As String
    Dim ds_users As New DataSet
    Dim mnResult As Integer


    Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
        If Not IsPostBack Then
            BindGrid()
        End If
    End Sub
    Private Sub BindGrid()
        objdbconn.OpenConn()
        msSQL = "select Id, Name from tblFiles"
        ds_users = objdbconn.GetDataSet(msSQL, "tblFiles")
        GridView1.DataSource = ds_users
        GridView1.DataMember = "tblFiles"
        GridView1.DataBind()
        objdbconn.CloseConn()
    End Sub

    Protected Sub Upload(sender As Object, e As EventArgs)
        Dim filename As String = Path.GetFileName(FileUpload1.PostedFile.FileName)
        Dim contentType As String = FileUpload1.PostedFile.ContentType
        Using fs As Stream = FileUpload1.PostedFile.InputStream
            Using br As New BinaryReader(fs)
                Dim bytes As Byte() = br.ReadBytes(CType(fs.Length, Long))
                objdbconn.OpenConn()
                msSQL = ""
                msSQL &= "insert into tblFiles (Name,ContentType) "
                msSQL &= " values('" & filename & "','" & contentType & "')"
                mnResult = objdbconn.ExecuteNonQuerySQL(msSQL)
                objdbconn.CloseConn()
            
                End Using
            End Using

        Response.Redirect(Request.Url.AbsoluteUri)
    End Sub

   



End Class




ДБ

DROP TABLE IF EXISTS `tabtree_new`.`tblfiles`;
CREATE TABLE  `tabtree_new`.`tblfiles` (
  `Id` int(10) unsigned NOT NULL auto_increment,
  `Name` varchar(45) NOT NULL,
  `ContentType` varchar(200) NOT NULL,
  `Data` varbinary(5000) default NULL,
  PRIMARY KEY  USING BTREE (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;


Что я уже пробовал:

Режим защищенного просмотра суб(как byval отправителя как объект, как byval E Как EventArgs в)
Dim id As Integer = целое число.Parse(TryCast(sender, LinkButton).CommandArgument)
Дим размещения как String = "в<данные объекта=""{0}{1}"" тип=""применение/формате PDF"" ширина=""500 пикселей"" высота=""600 пикселей""&ГТ;"
embed + = " если вы не можете просмотреть файл, вы можете скачать его из <a href = ""{0}{1}& download=1" " & gt;здесь< / a>"
добавьте += " или скачать на <цель = ""настроек"" слишком = ""http://get.adobe.com/reader/"">В программе Adobe читатель PDF&ЛТ;/а>, чтобы просмотреть файл."
embed + = " </object>"
лтембед.текстовая строка.Формат (embed, ResolveUrl ("~/ems_dailyprocess/pdf-sample. pdf"), id)
Конец Подводной Лодки

какая у меня должна быть ошибка в этом коде я не знаю нет

если загрузка файла и значение должны быть установлены на сетке успешно когда я нажимаю конкретный Pdf мне нужно просмотреть этот конкретный файл что я должен написать может ли любой 1 помочь мне дать представление об этом коде это действительно поможет мне для моих знаний

OriginalGriff

Это не очень хороший вопрос - мы не можем понять из этого малого, что вы пытаетесь сделать.
Помните, что мы не можем видеть ваш экран, получить доступ к вашему жесткому диску или прочитать ваши мысли.
И я совершенно не представляю, что вы пытаетесь сделать, или что происходит, когда вы запускаете этот код, или почему все это является проблемой.
Так что не торопитесь и объясните простыми словами, что именно происходит, чего вы не ожидали, или не происходит, что вы сделали!
Используйте виджет" улучшить вопрос", чтобы отредактировать свой вопрос и предоставить более подробную информацию.

2 Ответов

Рейтинг:
16

koolprasadd

Вы ведь хотите просмотреть этот файл, верно ?
Нет прямого способа просмотреть загруженные файлы в веб-приложении (asp.net) вам нужно скачать его и просмотреть.
для этого вы можете использовать объект "ответ", см. ниже фрагмент для примера

protected void DownloadFile(object sender, EventArgs e)
{
//pass filepath
    string filePath = (sender as LinkButton).CommandArgument;
    Response.ContentType = ContentType;
    Response.AppendHeader("Content-Disposition", "attachment; filename=" + Path.GetFileName(filePath));
    Response.WriteFile(filePath);
    Response.End();
}


Sergey Alexandrovich Kryukov

5ed, но я думаю, что исследователь должен понять некоторые предпосылки PDF. Кроме того, ваше выражение "нет прямого пути" не совсем точно. Вместо этого вам нужно будет объяснить, что это выходит из-под контроля веб-приложения/сайта.

См. решение 2.

—СА

Рейтинг:
11

Sergey Alexandrovich Kryukov

В дополнение к решению 1.

"Просмотр PDF напрямую" полностью выходит из-под вашего контроля. Это поведение веб-браузера, на которое веб-разработчик никак не может повлиять. Более того, вы не должны предполагать, что в клиентской системе вообще есть какое-либо программное обеспечение для просмотра PDF-файлов. Это просто не ваша ответственность; и это не представляет никаких практических проблем.

PDF не является частью стандартов W3. Тот факт, что вы часто видите PDF-файл как страницу браузера, ничего не значит. Это обычное, но не стандартное поведение. Чаще всего это достигается с помощью какого-нибудь плагина браузера. Если такого программного обеспечения нет, пользователю будет предоставлен выбор: открыть документ в средстве просмотра по умолчанию или сохранить его в локальном файле. Это средство просмотра по умолчанию также может быть не установлено, но это также не проблема, потому что пользователь может просто сохранить файл и просмотреть его позже, используя средство просмотра по умолчанию, установить некоторое программное обеспечение позже, просмотреть в другой системе и так далее.

В вашем веб-дизайне вы никогда не должны предполагать, что какой-либо из способов, описанных выше, используется. Это полностью зависит от пользователя.

—СА


koolprasadd

+5. "просмотр PDF напрямую" полностью выходит из-под вашего контроля", так что это правда.
Хороший ответ СА.

Sergey Alexandrovich Kryukov

Спасибо, Прасад.
—СА