Nido Apple

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

0voto

como Subir imágenes a mi base de datos con PHP?

Alguien tiene alguna tutorial para poder subir las imágenes a mi servidor... y si también como comprimirlas estaría genial... gracias buen día...

8 Respuestas

0voto

fenixfran Puntos780
Ok Creo que mi pregunta concreta es... como comprimir una foto tomada desde mi iPad y como subirla a mi base de datos MySQL con PHP

0voto

Peter Puntos289420
¿Pero te refieres a una aplicación para iOS que estas haciendo? ¿A un script PHP? ¿A una web en donde se suben fotos? ¿O como? Saludos.

0voto

fenixfran Puntos780
tengo ya hecho un PHP en donde recibo los parámetros desde mi iphone y ya los almacena en mi base de datos en los campos necesarios, mi problema radica en enviar una foto tomada desde el iphone o ipad, traducción ya tengo mi método para tomar y almacenar la foto en el iPhone, digamos que lo único que me falta es comprimir la imagen o codificarla para poder enviarla, ya que al enviarla a mi php no llega de forma adecuada y no puedo ni siquiera visualizarla... ademas por ejemplo ya visualizo correctamente alguna imagen que esta en mi base de datos, por que esta en BASE64... ósea que si pudiera enviar mi imagen desde el iphone en Base64 estaría perfecto

0voto

Peter Puntos289420
- El problema es que la duda es demasiado genérica y no se conoce nada de como haces todo el proceso y código que utilizas. - Ya tienes un PHP en donde recibes todo desde el iPhone. Habría que revisarlo entero. - Ya almacena los datos. Habría que ver como guarda todo la base de datos o archivos que utilices. - El problema esta en enviar una foto tomada desde el iPhone. pero que tienes hecho, cual es el error, que te hace falta, como funciona, como lo integras, etc... Habría que revisar tu aplicación para ver como estas implementando todo. Como codificarla y comprimirla creo que es el lo que menos importa, porque solo tienes que subir la misma fotografía que toma el iPhone y si la envía y la recibes, ya tienes realizada la mayor parte del trabajo. Aunque también habría que revisar como se hace todo esto. - No llega de forma adecuada y no puedes visualizarla. Habría que saber como llega, que error te da, como llega y porque no puedes visualizarla. Para esto habría que revisar todo tu código PHP y toda tu app para ver como haces el llamado de esa foto que no ves. Basicamente es eso, que habría que revisar todo por completo para ver como realizar todas las cosas. Sería más sencillo solucionar problemas concretos y por partes, porque así todo completo es muy complicado sin tener acceso a todo tu código. Saludos.

0voto

fenixfran Puntos780
Respondiendo en orden. - ya tengo donde recibo y almaceno todo mi php esta configurado de tal manera que recibe texto... es algo así... [PHP]////////////////////////////////////Codigo PHP mysql_connect( $db_host, $db_usuario, $db_password); mysql_select_db($db_nombre); mysql_set_charset('utf8'); $Nombre = addslashes($_REQUEST['V_Nombre']); $APaterno = addslashes($_REQUEST['V_APaterno']); $AMaterno = addslashes($_REQUEST['V_AMaterno']); $Calle = addslashes($_REQUEST['V_Calle']); $Numero = addslashes($_REQUEST['V_Numero']); $Foto = addslashes($_REQUEST['V_Foto']); $Asunto = addslashes($_REQUEST['V_Asunto']); $Placas = addslashes ($_REQUEST ['V_Placas']); $today = date('YmdHis'); $startDate = date('YmdHis', time()); $rand = rand(0, 1024); $clave = $rand . $startDate . $Usuario; mysql_query("INSERT INTO TB_Visitantes (V_Nombre, V_APaterno, V_AMaterno, V_Calle, V_Numero, V_Foto, V_Asunto, V_Placas) VALUES ( '".$Nombre."', '".$APaterno."', '".$AMaterno."', '".$Calle."', '".$Numero."', '".$Foto."', '".$Asunto."', '".$Placas."' )"); $resultado = array( "ValidationMessage" => "Exito"); echo json_encode($resultado) ?> /////////////////////////////////////////////PHP Fin[/PHP] - Todos los datos que campos que manejo están en formato VARCHAR, excepto Foto ya que esa la tengo en longblob... si subo manualmente una imagen a ese campo la convierte a Base64... entonces para visualizarla ya tengo el código en el código de mi app que convierte el Base64 a imagen. - mi código para tomar la foto es el siguiente [PHP]//CODIGO PARA TOMAR FOTO // Recibe el mensaje cuando el controlador a finalizado - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { // Quita la vista del controlador [picker dismissModalViewControllerAnimated:YES]; // Establece la imagen tomada en el objeto UIImageView _image.image = [info objectForKey:mad:"UIImagePickerControllerOriginalImage"]; } //CODIGO PARA TOMAR FOTO[/PHP] después en mi metodo de envío... yo envio parámetros a partir de los valores que recibo como nombre apellido etc... [PHP]NSDictionary *parametros = @{@"V_Nombre": _nombre.text, @"V_APaterno":_aPaterno.text, @"V_AMaterno": _aMaterno.text, @"V_Calle": _calle.text, @"V_Numero": _numero.text, @"V_Foto": @"", @"V_Asunto": _asunto.text };[/PHP] mi problema es precisamente ese no se como subir o como asignar el parámetro para enviarlo a mi PHP... Creo que la forma mas adecuada de hacer lo que yo quiero es generarle una URL a la imagen y guardarla en mi base de datos, de esa forma mis tablas de MySQL no pesaran tanto y la descarga de imagenes estará en otro hilo, si me pueden ayudar con eso les debo la vida espero con esto puedan ayudarme ya que me estoy dando de topes en la cabeza por que no puedo hacerlo de forma adecuada, las imágenes que subo directamente a mi servidor son muy pesadas y hace que todo mi sistema truene por eso quiero comprimirlas o hacerlas mas pequeñas... de ante mano muchas gracias y excelentes fiestas

0voto

Peter Puntos289420
Si necesitas enviar datos de ints, floats, strings, etc... puedes hacerlo así: (Enviamos nombre y apellido) [PHP]NSString*sendData =@"nombre="; sendData =[sendData stringByAppendingString:[NSString stringWithFormat:@"%@", nombre]]; sendData =[sendData stringByAppendingString:@"&apellido="]; sendData =[sendData stringByAppendingString:[NSString stringWithFormat:@"%@", apellido]]; NSMutableURLRequest*request =[NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://www.ejemplo.com/usuario"]]; [request setValue:@"gzip" forHTTPHeaderField:@"Accept-Encoding"]; //Aquí envias los datos [request setHTTPBody:[sendData dataUsingEncoding:NSUTF8StringEncoding]]; [request setHTTPMethod:@"POST"];NSError*error =nil;NSURLResponse*response =nil;NSData*data =[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error]; if(error){NSLog(@"Error");}else{ //La respuesta está en los datos }[/PHP] En PHP regresas un array con json_encode y después usas NSDictionary para leerlo en iOS. A ver si eso te ayuda un poco en lo que intentas. Saludos.

0voto

fenixfran Puntos780
agradezco la respuesta y si eso ya lo tengo hecho... ahora ya tengo mi código y todo hecho incluso ya guardo la imagen en mi servidor, en una carpeta de mi servidor con un tamaño muy aceptable. ahora mi duda y creo que es la principal... para subir por ejemplo el registro que tengo utilizo 2 servicios diferentes lo que quisiera saber si me pueden ayudar es como juntar esos 2 servicios y poner en un campo de mi base mi tabla la url de la imagen te muestro mis códigos el codigo del primer servicio es para registrar los datos de mi usuario: [PHP]////////////////////////////////////Codigo PHP mysql_connect( $db_host, $db_usuario, $db_password);mysql_select_db($db_nombre);mysql_set_charset('utf8');$Nombre = addslashes($_REQUEST['V_Nombre']);$APaterno = addslashes($_REQUEST['V_APaterno']);$AMaterno = addslashes($_REQUEST['V_AMaterno']);$Calle = addslashes($_REQUEST['V_Calle']);$Numero = addslashes($_REQUEST['V_Numero']);$Foto = addslashes($_REQUEST['V_Foto']);$Asunto = addslashes($_REQUEST['V_Asunto']);$Placas = addslashes ($_REQUEST ['V_Placas']);$today = date('YmdHis');$startDate = date('YmdHis', time());$rand = rand(0, 1024);$clave = $rand . $startDate . $Usuario;mysql_query("INSERT INTO TB_Visitantes (V_Nombre, V_APaterno, V_AMaterno, V_Calle, V_Numero, V_Foto, V_Asunto, V_Placas) VALUES ( '".$Nombre."', '".$APaterno."', '".$AMaterno."', '".$Calle."', '".$Numero."', '".$Foto."', '".$Asunto."', '".$Placas."' )");$resultado = array("ValidationMessage" => "Exito"); echo json_encode($resultado)?> /////////////////////////////////////////////PHP Fin[/PHP] y el registro de imagen [PHP]/////////////////////////////////////////////CODIGO PHP <?php $uploaddir = './'; //Uploading to same directory as PHP file $file = basename($_FILES['userfile']['name']); $uploadFile = $file; $randomNumber = rand(0, 99999); $newName = $uploadDir . $randomNumber . $uploadFile; if (is_uploaded_file($_FILES['userfile']['tmp_name'])) { echo "Temp file uploaded. \r\n"; } else { echo "Temp file not uploaded. \r\n"; } if ($_FILES['userfile']['size']> 4000000) { exit("Your file is too large."); } if (move_uploaded_file($_FILES['userfile']['tmp_name'], $newName)) { $postsize = ini_get('post_max_size'); //Not necessary, I was using these $canupload = ini_get('file_uploads'); //server variables to see what was $tempdir = ini_get('upload_tmp_dir'); //going wrong. $maxsize = ini_get('upload_max_filesize'); echo "http://example.net/imagen/{$file}" . "\r\n" . $_FILES['userfile']['size'] . "\r\n" . $_FILES['userfile']['type'] ; } ?> /////////////////////////////////////////////CODIGO PHP[/PHP]

0voto

fenixfran Puntos780
Alguien? :(

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...