Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    3,072

    Problema apertura file da pagina di "esplorazione"

    Ciao a tutti, tempo fa avevo trovato un esplora risorse carino... funziona tutto correttamente ma ho notato che quando apro un file (cliccando sul link del file) mi genera il file e, in fondo al file, trovo la pagina HTML dal <!DOCTYPE fino al </HTML>

    ((

    Avevo provato a piazzare un
    Response.End();

    col risultato che mi vengono visualizzati tutti i caratteri del file nella pagina web!




    codice:
    <%@ Page Language="C#" AutoEventWireup="true" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <script runat="server">
    
        protected String numero; // numero dell'ordine
    
        protected void Page_Load(object sender, EventArgs e)
        {
    
            numero = Request.QueryString["numero"].ToString();
    
            lblMessage.Text = "";
            if (Request["download"] == "true")
            {
                makeDownload(Request["fileToDownload"]);
            }
    
            if (!this.IsPostBack && !(Request["download"] == "true"))
            {
                TreeNode rootNode = fileTree.Nodes[0];
                string initialDirectorty = @"Z:\Inetpub\wwwroot\DOC\pratiche\" + numero; //Server.MapPath("~");
               
                populateNode(rootNode, initialDirectorty);
            }
        }
    
        private void populateNode(TreeNode rootNode, string directoryPath)
        {
    
            string[] files = System.IO.Directory.GetFiles(directoryPath);
            string fName = null;
    
            string dirName = null;
    
            foreach (string fNameCompete in files)
            {
                int sleshPosition = fNameCompete.LastIndexOf(@"\");
                fName = fNameCompete.Substring(sleshPosition + 1);
                TreeNode fileNode = new TreeNode(fName, fNameCompete);
                fileNode.SelectAction = TreeNodeSelectAction.Select;
                fileNode.Expanded = true;
                fileNode.PopulateOnDemand = false;
                string downloadString = "?download=true&fileToDownload={0}&numero=" + numero;
                fileNode.NavigateUrl = this.Request.FilePath + string.Format(downloadString, Server.UrlEncode(fileNode.Value));
                rootNode.ChildNodes.Add(fileNode);
            }
            string[] directories = System.IO.Directory.GetDirectories(directoryPath);
            foreach (string dirNameComplete in directories)
            {
                int sleshPosition = dirNameComplete.LastIndexOf(@"\");
                dirName = dirNameComplete.Substring(sleshPosition + 1);
                TreeNode dirNode = new TreeNode(string.Format("<font color='green'>{0}</font>", dirName), dirNameComplete);
                dirNode.SelectAction = TreeNodeSelectAction.Expand;
                dirNode.Expanded = false;
                dirNode.PopulateOnDemand = true;
    
                rootNode.ChildNodes.Add(dirNode);
            }
    
        }
    
        protected void fileTree_TreeNodePopulate(object sender, TreeNodeEventArgs e)
        {
            populateNode(e.Node, e.Node.Value);
        }
    
        private void makeDownload(string fisicalFilePath)
        {
    
            if (string.IsNullOrEmpty(fisicalFilePath))
            {
                lblMessage.Text = "File " + fisicalFilePath + " non trovato sul server!";
                lblMessage.Style["color"] = "red";
                return;
            }
            if (!System.IO.File.Exists(fisicalFilePath))
            {
                lblMessage.Text = "File " + fisicalFilePath + " non trovato sul server!";
                lblMessage.Style["color"] = "red";
                return;
            }
            try
            {
                int positionLastSeparator = fisicalFilePath.LastIndexOf(@"\");
                string simpleFileName = fisicalFilePath.Substring(positionLastSeparator + 1);
                Response.ContentType = "Application";
                Response.AddHeader("content-disposition", string.Format("attachment; filename={0}", simpleFileName));
                Response.TransmitFile(fisicalFilePath);
                //Response.End();
            }
            catch (Exception ex)
            {
                Response.ClearHeaders();
                lblMessage.Text = "Eccezione durante l'accesso al file: " + ex.Message;
                lblMessage.Style["color"] = "red";
            }
    
        }
    </script>
    
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head id="Head1" runat="server">
        <title>Untitled Page</title>
    		<style>
    			BODY, INPUT
    			{
    			 Font-Family: Verdana;
    			 Font-Size: 10px;
    			}
    		</style>
        
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
        <asp:Label ID="lblMessage" runat="server" />
        </div>
        <asp:TreeView ID="fileTree" runat="server" ShowExpandCollapse="true" OnTreeNodePopulate="fileTree_TreeNodePopulate" >
    			<Nodes>
    				<asp:TreeNode Expanded="true" PopulateOnDemand="false" SelectAction="Expand" Text="Files and Directory"></asp:TreeNode>
    				
    			</Nodes>
        </asp:TreeView>
        </form>
    </body>
    </html>

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    3,072
    Nessuna idea che possa illuminarmi?? (((

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    3,072
    Non riesco proprio a venirne a capo

    Quale potrebbe essere il problema?

    Grazie!!

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    120
    Ma quindi nella pagina vengono stampati i Tag Server?
    Tipo

    "<asp:TreeView ID="fileTree" runat="serv ...."

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    3,072
    Prima di tutto grazie per la risposta!!!

    Nella pagina vengono visualizzati i tag HTML della pagina... non i server

    praticamente tutta la pagina dall'DOCTYPE, HEADER, CONTENT

    Hai qualche idea??

    Non so proprio come risolvere questa cosa?

    Grazie

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    120
    Nella MakeDownload prova a mettere come prima istruzione

    Response.Clear()

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    3,072
    Ho provato ma non funziona.... tra l'altro la parte HTML è in fondo al file e non all'inizio


  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    120
    Quindi nonostante la Response.Clear() ti posta del tag HTML alla fine del tuo file?
    E tu sei certa che non ci sia effettivamente dell'HTML alla fine del tuo file?

  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    120
    Questa è una funzione che fa quello che dici tu ( e che uso tutti i giorni, quindi funzione )

    codice:
     
    Class Utility
      Public Shared Sub DownloadFile(ByVal completeFilePath As String, ByVal contentType As String, Optional ByVal fileName As String = "Doc1.doc")
        Dim res As HttpResponse = HttpContext.Current.Response
        With res
          Dim file As New IO.FileInfo(completeFilePath)
          .Clear()
          .AddHeader("Content-type", contentType)
          .AddHeader("Content-Disposition", String.Format("attachment; filename=""{0}""; size={1}", fileName, file.Length))
          res.Charset = ""
          res.WriteFile(completeFilePath)
          res.End()
        End With
      End Sub
    End Class

    Poi la chiami da dove vuoi con
    codice:
    Utility.DownloadFile("C:\miofile.txt")

  10. #10
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    3,072
    Scusa ma non ben capito ... a me servirebbe qualche cosa in C# perchè non riesco a trasformarlo in VB

    Inoltre come integro questa parte con l'esistente??? Non capisco cosa cancellare e cosa tenere..... vorrei avere un esplora risorse (al albero) tramite il quale passando una var col nome di una cartella... mi dia la possibilità di vedere tutte le sotto cartelle

    PathFisico/mia_var/.....

    con eventuali sottocartelle... alle quali accedere per visualizzare (e scaricare) anche quei files


    grazie infinite!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.