2014-12-03 33 views
3

讓我來說說這個問題。我有一個叫做«圖像»的表單。它包含一個稱爲「文件」的字段,並將其檢查爲圖像實現。這裏是validation.yml的一部分:無法在Symfony2中使用MIME類型的「application/octet-stream」上傳圖像

noxaeterna\MainBundle\Model\Image: 
constraints: 
    - Propel\PropelBundle\Validator\Constraints\UniqueObject: 
     fields: hash 
     message: "Такое изображение уже существует." 
properties: 
    name: 
     - NotBlank: 
      message: "Имя изображения не задано." 
     - Length: 
      max: 255 
      maxMessage: "Длина названия не должна превышать {{ limit }} символов." 
    file: 
     - NotBlank: 
      message: "Изображение не загружено" 
     - Image: 
      maxSize: 20M 
      mimeTypes: ["image/jpeg", "image/gif", "image/png", "image/x-png", "image/x-citrix-png", "image/x-citrix-jpeg", "image/pjpeg"] 
      minWidth: 1 
      minHeight: 1 
      minWidthMessage: "Изображение должно быть не менее {{ limit }} пикселей в ширину." 
      minHeightMessage: "Изображение должно быть не менее {{ limit }} пикселей в высоту." 
      sizeNotDetectedMessage: "Недопустимый формат изображения: не удалось определить размеры." 
      mimeTypesMessage: "Недопустимый формат изображения." 
      maxSizeMessage: "Файл слишком большой ({{ size }} байт). Размер не должен превышать {{ limit }}." 
      uploadIniSizeErrorMessage: "Файл слишком большой ({{ size }} байт). Размер не должен превышать {{ limit }}." 
      uploadFormSizeErrorMessage: "Файл слишком большой ({{ size }} байт). Размер не должен превышать {{ limit }}." 
      uploadErrorMessage: "Ошибка загрузки изображения." 

那麼是什麼問題?當我嘗試上傳一些具有MIME類型「application/octet-stream」的圖像並具有普通擴展名(如.jpg或.png)時,我看到一個錯誤,它告訴我圖像的大小無效。然後我嘗試通過var_dump()顯示«Image»的對象(一個實現),我看到«size»字段爲0(這就是顯示無效大小錯誤的原因)。

那麼,我已經做了這樣的圖像,以確定他們的大小,併成功下載(我必須說,與允許的MIME類型之一,它工作得很好)?

P.S.我很抱歉我英語不好。並一如既往,我會感謝任何答案!

有新信息!。所有大於幾兆字節的文件都以«application/octet-stream»MIME類型發送。

+1

您在php.ini中檢查了** post_max_size **和** upload_max_filesize **嗎? – 2014-12-03 09:51:44

+0

我忘了它。我會在更改它們的值時回答。 – Razip 2014-12-03 10:03:11

+0

@MarcelBurkhard,非常感謝! – Razip 2014-12-03 10:11:50

回答

6

添加我的評論這解決了它作爲回答這樣的問題就會有答案了:

有新的信息!。所有大於幾兆字節的文件都以«application/octet-stream»MIME類型發送。

的問題是,無論是的post_max_size的upload_max_filesize在php.ini限制了上傳的大小。

+0

它拯救了我的生命;) – 2015-12-03 23:50:41

相關問題