Sé que este no es el objetivo de VichUploader, pero desearía que fuera posible, porque VichUploader es demasiado bueno para procesar el campo del archivo y no solo en la base de datos, ¡sino también en la plantilla!
la situación es que ya tengo un archivo en el servidor y deseo que VichUploader pueda guardarlo y reubicarlo.
Mi código en acción:
use Symfony\Component\HttpFoundation\File\File;
......
class documentController extends Controller {
......
public function updateAction(Request $request){
......
$form = $this->createForm(new DocumentType(), $doc);
........
if ($form->isValid()) {
$baseDir = $this->get('kernel')->getRootDir() . "/../web/uploads";
$fileThumbnail = new File($baseDir."/image.jpg");
$doc->setImgThumbnail($fileThumbnail->getFilename());
$sm = $this->get('vich_uploader.storage');
$sm->upload($doc);
$em->persist($doc);
$em->flush();
.......
} //eof if
}
}
Intento usar VichUploader para guardar un archivo cargado sin clase de formulario, pero no funciona a mi manera.
Quiero saber si es posible guardar un archivo cargado con VichUploader y sin Form.
Gracias,
Esto no funcionará (supongo). Para activar el proceso de carga, debe tener un UploadedFile vinculado a la entidad y, en su lugar, está vinculando una instancia de File.
@ftassi Existe una solución.
La clase UploadedFile
tiene un parámetro test
. Si este parámetro true
, Symfony emulará la carga de un archivo.
Gracias @Baachi y @ftassi ,
@Baachi ¡ tienes razón!
Se puede hacer con la clase UploadedFile. esto es un truco, pero es simple y efectivo.
la solución viable es
$fileThumbnail = new UploadedFile($baseDir.$filename, 'image.jpg', null, null, null, true);
$doc->setFileThumbnail($fileThumbnail);
$em->persist($doc);
$em->flush();
y todo es perfecto.
Comentario más útil
Gracias @Baachi y @ftassi ,
@Baachi ¡ tienes razón!
Se puede hacer con la clase UploadedFile. esto es un truco, pero es simple y efectivo.
la solución viable es
y todo es perfecto.