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?

¿Fue útil?

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);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top