2010-03-26 13 views
6

Tôi có một Zend_Form với yếu tố tập tin như thế này:Zend_Form - Các Mimetype của tập tin 'foto.jpg' không thể được phát hiện

->addElement('file', 'image', array(
     'required' => false, 
     'label' => 'Venue Image', 
     'validators' => array(
      array('IsImage', false), 
      array('Size', false, '2097152'), 
      array('Upload', false), 
     ), 
    )) 

Và khi tôi đang sử dụng localhost hình ảnh được tải lên thành công. Nhưng khi tôi chuyển sang lưu trữ của tôi xác nhận lỗi lãm cho lĩnh vực hình ảnh. Mimetype của tập tin 'foto.jpg' không thể được phát hiện. Điều gì có thể là lý do của việc này?

+0

tôi đoán rằng bạn cần mở rộng kịch câm và lưu trữ không ha đã cài đặt nó;) –

Trả lời

11

điều tương tự xảy ra với tôi, đây là thứ điên rồ, hơn 2 giờ cố gắng tìm ra những gì là sai, đây là làm thế nào để sửa chữa nó:

cài đặt fileInfo mở rộng trên linux:

pecl install fileInfo

thì bạn cần phải thêm vào php.ini của bạn dòng này:

extension = fileinfo.so

khởi động lại apache của bạn và bạn đã làm xong!

* nếu bạn máy chủ là FreeBSD bạn phải làm điều này:

cd/usr/ports/sysutils/PECL-fileInfo/ thực hiện cài đặt

3

Từ các chú thích trong ZF Reference Guide:

Để thực hiện IsImage làm việc (và có lẽ tất cả xác nhận kịch câm liên quan khác) trên Zend Server trên win32 tôi đã phải thay thế "magic.mime" cung cấp trên Zend Server ("\ etc") bằng một trong những ngày Apache ("\ conf", tập tin được gọi là "kỳ diệu") (đừng quên khởi động lại Apache).

Nếu nó vẫn không hoạt động thì bạn có thể thử với những lựa chọn thay thế:

  • $element->addValidator('Mimetype', false, 'image/jpg');

hoặc

  • $element->addValidator('Extension', false, 'jpg');
5

Nếu bạn đang sử dụng XAMPP và localhost chỉ cần mở file php.ini của bạn và bỏ ghi chú:

extension = php_fileinfo.dll