martes, 29 de junio de 2010
Subir y bajar archivos en web y con SQLDataBase C#
En el formulario ademas de unos textBox y unos Labels o etiquetas, debemos poner un FileUpLoad Object, este componente nos permite facilemente subir el archivo. Debemos poner un boton para poder guardar los datos.
Ahora vamos al evento del boton en el codigo.
Aqui declaramos una tabla de memoria o datatable
Datatable dt=new DataTable();
despues declaramos tambien un SQLCOnnection, un String para la cadena de conexion a la base de datos y un SQLDataAdaptaer así como un SQLCommand.
string strcon="Cadena de conexion a datos"
SqlConnection scon=new SqlConnection(strcon)
SqlDataAdapter sda=new SqlDataAdapter("SELECT * FROM TABLA",scon)
SqlCommand scom=new SqlCommand(sda)
Con esto ya estamos listos para trabajar.
Primero cargarmos la estructura de nuestra tabla:
sda.fillSchema(dt,SchemaType.Source)
Ahora creamos un elemento DataRow:
DataRow dr=dt.NewDataRow(); Esto es para accesar a los campos de la tabla de memoria
Ahora asignamos los valores del formulario a nuestra tabla. Aqui se debe asignar los valores a los campos de la tabla tantos queramos o necesitemos, solo pondre los correspondientes a los archivos.
Debido a que el nombre del archivo viene junto con la extension debemos hacer un split. Siempre es bueno tener el nombre y la extension del archivo por separado.
String [] datos=FileUpLoad1.FileName.Split('.');
dr["File_Nombre"]=datos[0];
dr["File_Tipo"]=datos[1];
dr["File_Archivo"]=FileUpLoad1.FileBytes; //Aqui obtenemos el archivo expresado en arreglos de bytes lo cual es necesario para poder almacenarlo en nuestra base de datos.
dr["File_ContentType"]=FileUpLoad1.PostedFile.ContentType;
dr["File_Size"]=FileUpLoad1.PostedFile.ContentLength;
ahora asignamos el datarow ala tabla de memoria
dt.rows.add(dr);
y por ultimo hacemos el update de los datos para que se graven en la base de datos
sda.update(dt);
Es necesario implementar control de errores y validaciones pero bueno esos detalles se los dejos a ustedes.
Hasta aqui ya tenemos en nuestra base de datos un archivo del tipo que sea almacenado en un tipo de dato Blob que es un arreglo de bytes.
Ahora para poder accesarlo imaginemos que tenemos un GridView en donde queremos que el usuario de click en el nombre del archivo y le permita descargar el archivo que esta almacenado en la base de datos. Para esto necesitamos un GridView ligado a los datos, especificamente a la tabla en donde esta nuestro archivo. Puedes poner varias columnas yo para el ejemplo pondré solo 2 Id (llave primaria de mi tabla), File_Nombre. Ahora el siguiente codigo es justo como yo lo hice, se que debe haber mas formas o maneras de implementarlo pero bueno, yo comparto la mia.
En el gridView vamos al evento RowCreated (este evento se dispara cuando se carga la página y se carga el grid con cada una de las lineas)
GridView1_RowCreated(...
Aqui lo que vamos a hacer es cambiar el icono en un evento onmouseover y agregar el evento onclick.
primero preguntamos si el renglo insertado en el grid es de tipo datarow
if (e.Row.RowType==DataControlRowType.DataRow)
{
Despues asignamos los eventos
e.Rows.Cells[1].Attributes.Add("onmouseover","this.style.cursor='hand'");
e.Rows.Cells[1].Attributes.Add("onclick","OnGridClick('"+row.ToString()+"')");
En esta ultima linea necesitamos declarar una variable de tipo int que nos va a indicar en que renglo se encuentra el dato en donde demos click
}Despues de cerrar el if inbcrementamos la variable row
row++;
En el evento Load puedes inicializar la variable row=0; pero recuerda declararla como global para este documento: Private int row;
Bien ahora vamos al codigo de la pagina. Ahi debemos declarar un segmento JavaScript. El evento que le hemos puesto arriba es para que al dar click dispare un evento o una funcion en javascript.
para feectos del ejemplo yo usare un datareader dr
El codigo es como sigue:
Response.Claer();
string file_name=dr["File_Nombre"].ToString().Trim();
string file_ext=dr["File_Tipo"].ToString().Trim();
Response.AddHeader("Content-Disposition","inline;filename="+file_name+"."+file_ext);
Response.ContentType=dr["file_ContentType"].ToString();
Ahora como el archivo esta guardado en un arreglo de bytes debemos usar la siguiente linea para leerlo correctamente.
Response.OutPutStream.Write((byte[])dr["File_archivo"], 0, dr["File_size"]);
Response.End();
Listo con estos pasos el explorer nos va a preguntar donde guardar el archivo.
Y como dice Squall C'Ya........
viernes, 28 de mayo de 2010
Upgrade PS3 HDD
No importa si tienes un PS3 de 20, 40 o 60 Gigabytes, incluso si es uno de 160 !!, siempre será posible realizar una actualización del disco duro para obtener mas espacio de almacenamiento. Esto debido a que cada vez existen mas y mas descargas de juegos (DLC), ya sea por actualizaciones o expansiones que se compran, yo mismo descargue 500 megas solo por 11 canciones del RockBand !! Afortunadamente Sony ha diseñado el PS3 para que permita a los dueños de la consola realizar su propio upgrade del HDD (Disco Duro), puedes ir a cualquier lado y escoger tu propio HDD y no tener que comprar uno "Oficial". Sin embargo, esto conlleva un riesgo para los que lo deseen hacer, ya que deben escoger cuidadosamente el tipo de disco duro a utilizar y realizar apropiadamente la actualización.
El primer paso es conseguir un disco duro para la consola, cualquier disco duro de notebook tipo SATA de 2.5 pulgadas debe funcionar, ya sea de 5400 o 7200 RPM. Es importante el tamaño porque si no no cabe en el espacio de 2.5 pulgadas del PS3.Una vez que ya se tiene el nuevo disco duro, el siguiente paso es respaldar toda la información, si tienes y te interesa claro, para ello es recomendable emplear un medio externo USB como disco duro o pendrive lo suficientemente grande como para almacenar todo el backup. La consola tiene precargado un software que permite realizar el respaldo de toda la información a un dispositivo externo, este dispositivo debe estar formateado con FAT32 o sino no lo reconocera.
Si no tienes suficiente espacio para el respaldo intenta sacar fotos, videos y archivos independientes al sistema de la consola y despues hacer el backup, ya que a traves de este se guardarán las cuentas registradas y toda la información del PSN.
Ahora sí, consiguete un desarmador y sigue los pasos en las imagenes acontinuación:
Apaga la consola y desconectala, ahora remueve el plastico lateral donde se encuentra el disco duro y quita el tornillo que se ve.
Ahora quita la tapa y mueve el metal a la derecha para safarlo.
c'ya
php y IIS 7 en windows 7
1.- Debemos descargar php desde http://www.php.net/get/php-5.2.13-Win32.zip/from/a/mirror e instalarlo.
2.- Ahora abrimos la consola del IIS InetMgr y seleccionamos el directorio virtual o el nodo padre de los directorios virtuales y seleccionamos Handler Mappings y le damos en agregar script.
3.- ahora vamos a definir los valores. En el primer valor (Request path) ponemos *.php
En el siguiente valor (Executable) abrimos el explorador con el botón y buscamos el archivo php5isapi.dll y lo seleccionamos. En el ultimo valor ponemos un nombre mara la extension ISAPI, puede ser PHP y damos click en Ok, nos dira que se va a agregar la entrada y le decimos que si.
con esto tenemos ya nuestro sitio listo para ejecutar php. hagamos la prueba.
escribe esto en un archivo de texto:
y guradalo como .php, puede ser test.php. Ahora copialo al directorio virtual en el cual agregamos la extension Isapi. ahora abre tu explorador y dale que te muestre test.php. debe mostrar una pantalla con las caracteristicas de php si te marca un error algo no quedo bien.
Bueno es algo sencillo pero practico, espero sirva. y como dijera squall c'ya.