CakePhp - MeioUpload - Cómo descargar archivos cargados
-
27-10-2019 - |
Pregunta
Comencé a usar Meioupload para cargar mis archivos de CakePHP, sin embargo, no estoy seguro de cómo codificación la descarga.
Intenté usar el siguiente código:
echo $file['Image']['dir'].$file['Image']['filename'];
Sin embargo, parece que el código está mal. Como sale lo siguiente:
uploads\image\filenamedb_fyp_2.txt
¿Cómo descargo el archivo db_fyp2.txt?
Solución 3
Gracias por la respuesta, pero ya descubrí cómo descargar los archivos usando MediaView de CakePHP.
De todos modos, para responder a mi propia pregunta, para descargar el archivo con varias extensiones, se puede usar el siguiente código.
Uso de la vista de medios de CakePHP - en el controlador
public function download($id){
$this->viewClass = 'Media';
$this->autoLayout = false;
$file = $this->Image->findById($id);
$link = $file['Image']['dir'];
$params = array(
'id' => $file['Image']['filename'],
'name' => $file['Image']['filename'],
'download' => true,
'mimeType' => $file['Image']['mimetype'],
'extension' => array('pdf','zip','txt'),
'path' => $link.DS
);
$this->set($params);
Otros consejos
Bueno, todo lo que le está diciendo a su aplicación es hacer eco del filepático y eso es exactamente lo que está haciendo. Si solo desea que se abra el archivo en el navegador, use el redirect
Flujo de control en su lugar, como:
class YourController extends AppController {
public function upload() {
// You upload logic here, followed by ...
$this->redirect($file['Image']['dir'].$file['Image']['filename']);
}
}
Si desea que el navegador ofrezca el archivo como una descarga, envíe el elemento de contenido apropiado encabezamiento (Ver Ejemplo #1).
header('Content-Disposition: attachment; filename="' . $file['Image']['filename'] . '"');
readfile($file['Image']['dir'].$file['Image']['filename']);
Intenta agregar tu raíz a donde está imprimiendo esto. Solo si se le da una URL, funcionará. Y el Mitake principal que está haciendo aquí es que debe convertirlo en un enlace en lugar de Solo imprimiéndolo.
$this->Html->link('Link Name',$path to that file);