양식을 통해 파일을 업로드 할 때이 번들을 사용하고 있습니다. 이것이 내가 한 일이다. 나뭇 가지 템플릿에서 어디 폼 클래스에 번들파일이 업로드되지 않고 DB에 임시 이름이 삽입되었는데 잘못 했습니까?
<form action="{{ path('guardar-natural') }}" method="POST" class="form-horizontal" role="form" id="registroNatural" {{ form_enctype(form) }}>
{{ form_widget(form.documento_rif) }}
<button type="submit" class="btn btn-primary" id="btnEnviarRegistro">{{ 'registration.submit'|trans }}</button>
</form>
을 사용하고 있습니다 :
use Symfony\Component\HttpFoundation\File\File;
use Vich\UploaderBundle\Mapping\Annotation as Vich;
/**
* @Vich\Uploadable
*/
class Natural
{
/**
* @Vich\UploadableField(mapping="recaudos", fileNameProperty="documentoRIF")
* @var File $imageFile
*/
protected $imageFile;
/**
* @ORM\Column(type="string", length=255, name="documento_rif", nullable=true)
* @var string $documentoRIF
*/
protected $documentoRIF;
/**
* @ORM\Column(type="datetime", nullable=true)
* @var \DateTime $updatedAt
*/
protected $updatedAt;
/**
* @param File|\Symfony\Component\HttpFoundation\File\UploadedFile $image
*/
public function setImageFile(File $image = null)
{
$this->imageFile = $image;
if ($image) {
$this->updatedAt = new \DateTime('now');
}
}
/**
* @return File
*/
public function getImageFile()
{
return $this->imageFile;
}
/**
* @param string $documentoRIF
*/
public function setDocumentoRIF($documentoRIF)
{
$this->documentoRIF = $documentoRIF;
}
/**
* @return string
*/
public function getDocumentoRIF()
{
return $this->documentoRIF;
}
}
config.yml
파일에서 : 필드가있는 엔티티에서
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('documento_rif', 'vich_file', array(
'required' => true,
'mapping' => 'recaudos',
'allow_delete' => true,
'download_link' => true,
'label' => false,
))
->add('usuario', new RegistrationForm());
}
vich_uploader:
db_driver: orm # or mongodb or propel or phpcr
storage: vich_uploader.storage.file_system
mappings:
recaudos:
uri_prefix: /recaudos
upload_destination: %kernel.root_dir%/../web/uploads/recaudos
namer: vich_uploader.namer_uniqid
delete_on_update: true
delete_on_remove: true
Th 전자 번들은 어떤 오류도 발생하지 않기 때문에 사용 가능합니다. 디렉토리에 올바른 권한 (0755)이 있습니다. DB 레벨에서 어떤 레코드가 documento_rif
컬럼에 생성 될 때 나는이 문자열 /tmp/php1fbjiZ
대신 파일 이름을 얻습니다. 내 코드에서 무엇이 잘못 되었습니까?
물론이 코드에는 더 많은 코드가 있지만 관련 부분은 여기에 작성하십시오.
내 양식에 두 개 이상의 업로드 파일이 있습니까? 어떻게 처리해야합니까? 조언 좀 해줄 수 있니? – ReynierPM