Principales respuestas
Como especificar una carpeta en el servidor donde guardar documentos

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
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
-
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
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
-
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
-
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
-