Foros del Web » Programando para Internet » PHP » Symfony »

Problema subiendo audio

Estas en el tema de Problema subiendo audio en el foro de Symfony en Foros del Web. ¡Saludos! Me encuentro programando un sistema donde tengo que subir archivos de audio bastante grandes(40MB - 60MB aprox) por qué son para Podcasting, estoy trabajando ...
  #1 (permalink)  
Antiguo 01/03/2013, 12:05
 
Fecha de Ingreso: marzo-2013
Ubicación: El Salvador
Mensajes: 1
Antigüedad: 11 años, 9 meses
Puntos: 0
Problema subiendo audio

¡Saludos!

Me encuentro programando un sistema donde tengo que subir archivos de audio bastante grandes(40MB - 60MB aprox) por qué son para Podcasting, estoy trabajando con Symfony2 y MySQL.

Este es mi html en donde puedo elegir si quiero una simple noticia o quiero publicar un podcasting.

Código:
	<script>

		function cambiaEstado(select)
		{
			if(select.value == 2)
				$('#audioFiles').css({display: 'block'});
			else
				$('#audioFiles').css({display: 'none'});
			
		}
	</script>
	<form method="post"  enctype="multipart/form-data">
	<table cellpadding="0" cellspacing="0" >
	<tr>
			<td>Categoria:</td>
			<td>
				<select name="txtId" id="categoria" onchange="cambiaEstado(this);">
				{% for categories in categories %}
					<option value="{{ categories.id }}">
						{{ categories.Name }}
					</option>
				{% endfor %}
				</select>
			</td>
		</tr>
		<tr>
			<td>Titulo:</td><td><input type="text" name="txtTitle" id="titulo" /></td>
		</tr>
		<tr>
			<td>Contenido:</td><td><input type="text" name="txtContent" /></td>
		</tr>
		<tr>
			<td>Palabra clave:</td><td><input type="text" name="txtKeywords"/></td>
		</tr>
		<tr>
		<td>Imagen</td>
			<td><input type="file"  name="imagen" /></td>
		</tr>
	</table>


	<div id="audioFiles" style="display:none">
		<table cellpadding="0" cellspacing="0">
			<tr>
				<td>MP3</td>
		  		<td><input type="file" name="mp3"/></td>
			</tr>
			<tr>
				<td>OGG</td>
		  		<td><input type="file" name="ogg"/></td>
		 	</tr>
		 </table>
	</div>
	<table cellpadding="0" cellspacing="0">
	  <tr>
		<td><input type="submit" name="btnNews" value="Guardar"/></td>
	</tr>
	</table>
</form>
Y este es mi controlador

Código:
public function addAction()
{
	    $Session = new Session();
	    $id = $Session->get('id');
	    if(isset($id))
	    {
			$news = new catNews();
			$category = new catCategories();
			$user = new catUsers();
			$imagen = new Image();
			$audio = new audio();
			$multi = new ctrMultimedia();
			$request = $this->getRequest();			
			$em = $this->getDoctrine()->getEntityManager();

			\ini_set('upload_max_filesize', '200M');
         	        \ini_set('post_max_size', '200M');
                  	\ini_set('memory_limit','512M');
                 	\ini_set('max_execution_time', 120);

			if ($request->getMethod() == 'POST') 
			{


				$_POST = $request->request;
				$_FILES = $request->files;
				$categories = $em->getRepository('CrystalBaseBundle:catCategories')->find($_POST->get('txtId'));
				$news->setContent($_POST->get('txtContent'));
				$news->setTitle($_POST->get('txtTitle'));
				$news->setDate(date('m/d/Y'));
				$news->setKeywords($_POST->get('txtKeywords'));
				$news->setidCategory($categories);

				$user = $em->getRepository('CrystalBaseBundle:catUsers')->find($id);
				$news->setidUser($user);
				
				
				$em->persist($news);
				$em->flush();


			    $imagen->img = $_FILES->get('imagen');
	            if($imagen->checkErrors() == 'NoError')
	             {	             	

	                 $multi->setPath($imagen->upload());
	                 $multi->setType('imagen');
	                 $multi->setidNew($news);

	                 $em->persist($multi);
					 $em->flush();

	             }

	            if($_FILES->get('mp3') != "")
	            {	
	            	$audio->audio = $_FILES->get('mp3');
		            if($audio->checkErrors() == 'NoError')
		             {

		                 $multi->setPath($audio->upload());
		                 $multi->setType('mp3');
		                 $multi->setidNew($news);

		                 $em->persist($multi);
						 $em->flush();

		             }
	            }	
	           
	            
	        	if($_FILES->get('ogg') != "")
	        	{

		            $audio->audio = $_FILES->get('ogg');
		            if($audio->checkErrors() == 'NoError')
		             {

		                 $multi->setPath($audio->upload());
		                 $multi->setType('ogg');
		                 $multi->setidNew($news);

		                 $em->persist($multi);
						 $em->flush();

		             }
	     	    }
					
				return $this->redirect($this->generateURL('listNews'));


			}
			else
			{
				$categories = $em->getRepository('CrystalBaseBundle:catCategories')->findAll();
				return $this->render('CrystalAdminBundle:News:createNews.html.twig', array('news' => $news, 'categories' => $categories, 'user' => $user));
			}
		}
		else
        {
            return $this->redirect($this->generateURL('login'));   
        }
}
Todo funciona bien si solo quiero publicar una noticia con una imagen pero si quiero publicar un podcasting con un solo archivo de audio que elija no me funciona para nada, como verán no son problemas de memoria ya que con el ini_set he cambiado todos los valores necesarios.

A la hora de hacer el submit con los archivos de audio (aunque sea solo uno), el request no me trae ningun valor del formulario. he hecho un print_r de la variable $_POST y no trae ningun dato del formulario si elijo archivos de audio, por lo que me da el siguiente error:

The identifier id is missing for a query of Crystal\BaseBundle\Entity\catCategories

en la siguiente línea:

$categories = $em->getRepository('CrystalBaseBundle:catCategories' )->find($_POST->get('txtId'));

pero eso es porque la variable $_POST no me trae ningun dato del formulario al seleccionar archivos de audio en los files mp3 y ogg, probé poniendo imágenes en esos input y ahi si hala los datos pero me da error en la clase que he hecho porque no son archivos de audio.

También probé usando un .mp3 muy pequeño de 17.3KB y ese si me lo subió perfectamente, pero a la hora de usar un mp3 de 47.8MB que regularmente eso pesarán los podcasting no lo subió para nada ¿Estoy poniendo mal los ini_set o no funciona esto en symofny2?

¿Alguién tiene alguna idea de porque al seleccionar archivos .mp3 o .ogg grandes no me manda ningun dato del form?

Múchisimas gracias de antemano a la gente que me responda

Última edición por Skenji22; 01/03/2013 a las 12:47 Razón: Especificar más el problema

Etiquetas: audio, symfony2
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:58.