none
Como especificar una carpeta en el servidor donde guardar documentos RRS feed

  • Pregunta

  • Hola gente:

    Tengo una duda con la ubicación de un carpeta donde guardar archivos temporales.

    Estoy creando una web, en la cual genero un informe con Crystal Reports para enviarlo por email y luego eliminar el informe. No me hace falta mostrarlo. En mi equipo de desarrollo pues lo exporto a una carpeta c:\temp\+ un nombre

    Pero en el servidor de producción, dudo que yo pueda crear una carpeta c:\temp, Si yo me creo una carpeta en el servidor, por ejemplo, midominio.com/temp, como puedo usar esta carpeta para guardar ahí mis ficheros?

    Muchas gracias.


    Juanjo

    jueves, 26 de junio de 2014 17:22

Respuestas

  • Hola

    Lo que te puedo ayudar es que casi todos los hosting te permiten tener una carpeta que no está en la raiz del sitio. Puedes hacer dos cosas, una es retornar un archivo usando una accion de tipo File result, algo así:

    public FileResult Download() { byte[] fileBytes = System.IO.File.ReadAllBytes("c:\folder\myfile.ext"); string fileName = "myfile.ext"; return File(fileBytes, System.Net.Mime.MediaTypeNames.Application.Octet, fileName); }

    Ahora si solo quieres acceder a la carpeta donde está el archivo puedes usar algo como esto:

    System.Web.HttpContext.Current.Server.MapPath("~/SignatureImages/tu_archivo.pdf")

    • Marcado como respuesta Juanjo_16v viernes, 27 de junio de 2014 5:13
    jueves, 26 de junio de 2014 23:29
  • HOLA...SI SOLUCIONO TU PROBLEMA NO OLVIDES MARCAR COMO RESPUESTA Y VOTAR COMO UTIL

    Agrega una Carpeta a tu proyecto WEB ...en mi caso se llama File ...luego puedes agregar un control FileUpload

    para que puedas escojer el archivo que quieres adjuntar para enviar....

    Fijate como lo hago aqui

     Protected Sub Button2_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button2.Click
                ArchivoUpload()
                Dim destinoMail As String = AnalistaMail()
                EnvioEMail(destinoMail)
    End Sub
    
    Private Sub ArchivoUpload()
            If FileUpload1.HasFile Then
                Try
                    Dim nombreFile As String = FileUpload1.FileName()
                    Dim ruta As String = Path.Combine(Server.MapPath("~/File/"), nombreFile)
                    FileUpload1.SaveAs(ruta)
                    msg.Attachments.Add(New Attachment(ruta))
    
                    Label4.Text = "Nombre Archivo: " & FileUpload1.PostedFile.FileName & "<br>" & _
                            "Tamaño Archivo: " & FileUpload1.PostedFile.ContentLength & " kb<br>"
                Catch ex As Exception
                    ClientScript.RegisterStartupScript(Me.GetType(), "myScript", "<script>javascript:ErrorInesperado();</script>")
                End Try
    
            End If
    
        End Sub
        Private Function AnalistaMail() As String
            Dim destinoMail As String
            Dim usuario As String
            Sql = "SELECT mail FROM analistamail WHERE usuario=@usuario AND status='ACTIVO'"
            Dim comando As SqlCommand = New SqlCommand(Sql, Conexion)
            Try
    
                For Each row As GridViewRow In GridView1.Rows
                    If Not (row.Cells(7).Text.Trim() = "S/Asignar") Then
                        usuario = CStr(row.Cells(7).Text)
                        Dim lector As SqlDataReader
                        comando.Connection.Open()
                        comando.Parameters.Clear()
                        comando.Parameters.AddWithValue("@usuario", usuario)
                        lector = comando.ExecuteReader()
    
                        If (lector.Read()) Then
                            destinoMail = lector("mail").ToString().Trim()
                        Else
                            destinoMail = ""
                        End If
                        comando.Connection.Close()
                        lector.Close()
                    Else
                        destinoMail = ""
                    End If
                Next
    
            Catch ex As Exception
                destinoMail = ""
                TextBox1.Text = ex.ToString
                comando.Connection.Close()
                ClientScript.RegisterStartupScript(Me.GetType(), "ERROR()", script3)
    
            End Try
    
            Return destinoMail
        End Function
    
        Private Sub EnvioEMail(ByVal destinoMail As String)
    
    
            Dim EmailOrigen As String = "ssovencrea@gmail.com"
            Dim User As String = "ssovencrea"
            Dim Password As String = "siclair43324"
            Dim mails() As String
            Dim cuentas As String = destinoMail
            If (destinoMail = "") Then
                cuentas = "mucciam@ssoven.com.ve,rodriguezye@ssoven.com.ve,matuted@ssoven.com.ve,jimeneza.ssoven@gmail.com,casiquea.ssoven@gmail.com,mendezs.ssoven@gmail.com,ramoness.ssoven@gmail.com ,velizi.ssoven@gmail.com ,gyga3000@gmail.com"
            End If
    
            mails = cuentas.Split(",")
            Dim n As Integer = mails.Length - 1
            For i = 0 To n Step 1
                destinatarios.Add(mails(i))
            Next
    
            asunto = userent & " " & "Comento el Requerimiento : " & " " & TextBox1.Text & "  de : SSO . CA" : body = TextBox2.Text
            msg.From = New MailAddress(EmailOrigen)
            msg.Subject = asunto
            msg.SubjectEncoding = System.Text.Encoding.UTF8
            msg.Body = body
            msg.BodyEncoding = System.Text.Encoding.UTF8
            msg.IsBodyHtml = True
    
            For Each item As String In destinatarios
                msg.To.Add(New MailAddress(item))
            Next
    
            client.Credentials = New System.Net.NetworkCredential(User, Password)
            client.Port = 587
            client.Host = "smtp.gmail.com"
            client.EnableSsl = True
            client.Send(msg)
    
        End Sub


    EFRAIN MEJIAS C VALENCIA - VENEZUELA

    • Marcado como respuesta Juanjo_16v viernes, 27 de junio de 2014 5:13
    viernes, 27 de junio de 2014 0:21

Todas las respuestas

  • Hola

    Lo que te puedo ayudar es que casi todos los hosting te permiten tener una carpeta que no está en la raiz del sitio. Puedes hacer dos cosas, una es retornar un archivo usando una accion de tipo File result, algo así:

    public FileResult Download() { byte[] fileBytes = System.IO.File.ReadAllBytes("c:\folder\myfile.ext"); string fileName = "myfile.ext"; return File(fileBytes, System.Net.Mime.MediaTypeNames.Application.Octet, fileName); }

    Ahora si solo quieres acceder a la carpeta donde está el archivo puedes usar algo como esto:

    System.Web.HttpContext.Current.Server.MapPath("~/SignatureImages/tu_archivo.pdf")

    • Marcado como respuesta Juanjo_16v viernes, 27 de junio de 2014 5:13
    jueves, 26 de junio de 2014 23:29
  • HOLA...SI SOLUCIONO TU PROBLEMA NO OLVIDES MARCAR COMO RESPUESTA Y VOTAR COMO UTIL

    Agrega una Carpeta a tu proyecto WEB ...en mi caso se llama File ...luego puedes agregar un control FileUpload

    para que puedas escojer el archivo que quieres adjuntar para enviar....

    Fijate como lo hago aqui

     Protected Sub Button2_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button2.Click
                ArchivoUpload()
                Dim destinoMail As String = AnalistaMail()
                EnvioEMail(destinoMail)
    End Sub
    
    Private Sub ArchivoUpload()
            If FileUpload1.HasFile Then
                Try
                    Dim nombreFile As String = FileUpload1.FileName()
                    Dim ruta As String = Path.Combine(Server.MapPath("~/File/"), nombreFile)
                    FileUpload1.SaveAs(ruta)
                    msg.Attachments.Add(New Attachment(ruta))
    
                    Label4.Text = "Nombre Archivo: " & FileUpload1.PostedFile.FileName & "<br>" & _
                            "Tamaño Archivo: " & FileUpload1.PostedFile.ContentLength & " kb<br>"
                Catch ex As Exception
                    ClientScript.RegisterStartupScript(Me.GetType(), "myScript", "<script>javascript:ErrorInesperado();</script>")
                End Try
    
            End If
    
        End Sub
        Private Function AnalistaMail() As String
            Dim destinoMail As String
            Dim usuario As String
            Sql = "SELECT mail FROM analistamail WHERE usuario=@usuario AND status='ACTIVO'"
            Dim comando As SqlCommand = New SqlCommand(Sql, Conexion)
            Try
    
                For Each row As GridViewRow In GridView1.Rows
                    If Not (row.Cells(7).Text.Trim() = "S/Asignar") Then
                        usuario = CStr(row.Cells(7).Text)
                        Dim lector As SqlDataReader
                        comando.Connection.Open()
                        comando.Parameters.Clear()
                        comando.Parameters.AddWithValue("@usuario", usuario)
                        lector = comando.ExecuteReader()
    
                        If (lector.Read()) Then
                            destinoMail = lector("mail").ToString().Trim()
                        Else
                            destinoMail = ""
                        End If
                        comando.Connection.Close()
                        lector.Close()
                    Else
                        destinoMail = ""
                    End If
                Next
    
            Catch ex As Exception
                destinoMail = ""
                TextBox1.Text = ex.ToString
                comando.Connection.Close()
                ClientScript.RegisterStartupScript(Me.GetType(), "ERROR()", script3)
    
            End Try
    
            Return destinoMail
        End Function
    
        Private Sub EnvioEMail(ByVal destinoMail As String)
    
    
            Dim EmailOrigen As String = "ssovencrea@gmail.com"
            Dim User As String = "ssovencrea"
            Dim Password As String = "siclair43324"
            Dim mails() As String
            Dim cuentas As String = destinoMail
            If (destinoMail = "") Then
                cuentas = "mucciam@ssoven.com.ve,rodriguezye@ssoven.com.ve,matuted@ssoven.com.ve,jimeneza.ssoven@gmail.com,casiquea.ssoven@gmail.com,mendezs.ssoven@gmail.com,ramoness.ssoven@gmail.com ,velizi.ssoven@gmail.com ,gyga3000@gmail.com"
            End If
    
            mails = cuentas.Split(",")
            Dim n As Integer = mails.Length - 1
            For i = 0 To n Step 1
                destinatarios.Add(mails(i))
            Next
    
            asunto = userent & " " & "Comento el Requerimiento : " & " " & TextBox1.Text & "  de : SSO . CA" : body = TextBox2.Text
            msg.From = New MailAddress(EmailOrigen)
            msg.Subject = asunto
            msg.SubjectEncoding = System.Text.Encoding.UTF8
            msg.Body = body
            msg.BodyEncoding = System.Text.Encoding.UTF8
            msg.IsBodyHtml = True
    
            For Each item As String In destinatarios
                msg.To.Add(New MailAddress(item))
            Next
    
            client.Credentials = New System.Net.NetworkCredential(User, Password)
            client.Port = 587
            client.Host = "smtp.gmail.com"
            client.EnableSsl = True
            client.Send(msg)
    
        End Sub


    EFRAIN MEJIAS C VALENCIA - VENEZUELA

    • Marcado como respuesta Juanjo_16v viernes, 27 de junio de 2014 5:13
    viernes, 27 de junio de 2014 0:21
  • Muchas gracias,

    Realmente, mas o menos es como guardo y luego leo el archivo es como lo pones, pero la duda esta en "c:\folder\",

    es un punto por donde empezar.

    Juanjo


    • Editado Juanjo_16v viernes, 27 de junio de 2014 5:16
    viernes, 27 de junio de 2014 5:13
  • Muchas gracias,

    Juanjo

    viernes, 27 de junio de 2014 5:14