Ben model bir çift, bunlardan biri ile bir arkaplana inşa ettik, Ürünler, görüntü yükleme destekler. Yerel dosya yükleme çok iyi çalışıyor. Ben Dağıt yaptım, çalışma durduruldu: form doğrulama çünkü ben lokal olarak test etmek için kullanılan aynı JPG görüntü kullanılarak ediyorum hatta yanlış mime türü (error is: "Invalid mime type (jpeg image data, exif standard).") görüntü alanı için, başarısız olur.
Sana benim form sınıf kod göstereceğim:
class ProductForm extends BaseProductForm
{
public function configure()
{
...
/* Widgets */
...
$this->widgetSchema['image_1'] = new sfWidgetFormInputFileEditable(array(
'file_src' => '/'.basename(sfConfig::get('sf_upload_dir')).'/products/normal_'.$this->getObject()->getImage_1(),
'is_image' => true,
'edit_mode' => strlen($this->getObject()->getImage_1()) > 0,
'delete_label' => 'remover el archivo actual',
'template' => '<div>%file%<br />%input%</div>'
));
...
/* Validators */
$this->validatorSchema['image_1'] = new sfValidatorFileImage(array(
'required' => (! $this->getObject()->getImage_1()),
'max_size' => '5252880',
'path' => sfConfig::get('sf_upload_dir').'/products/original',
'mime_types' => 'web_images',
'min_width' => 470,
'max_width' => 99999,
'min_height' => 306,
'max_height' => 99999,
'validated_file_class' => 'sfResizedFile', // This class creates the thumbnails
), array(
'required' => 'Tenés que seleccionar una imagen principal.',
'max_size' => 'El tamaño máximo es 5 MB',
//'mime_types' => 'Sólo se permiten imágenes para web (jpg, png, gif)',
'invalid_image' => '%value% no es un archivo de imagen.',
'min_width' => 'El ancho de "%value%" es muy chico (mínimo %min_width% pixels).',
'min_height' => 'El alto de "%value%" es muy chico (mínimo %min_height% pixels).',
));
$this->validatorSchema['image_1_delete'] = new sfValidatorPass();
...
}
...
sfValidatorFileImage boyut kontrolleri ile sfValidatorFile uzanan sadece bir özel validator sınıftır. Ben sadece bu durumda normal sfValidatorFile sınıfı ile denedim, ancak hata devam. Mim tipleri sunucu konfigürasyonu ile bir ilgisi var mı? Ve neden düzenli bir web sunucusunda kıracak?
Bu, bugün konuşlandırılmış gerekli olduğundan cevap hızı gerçekten takdir edilmektedir.