嗨,我嘗試使用以下格式的代碼上傳CSV文件:CSV上傳 - MIME類型
$this->widgetSchema ['file'] = new sfWidgetFormInputFile();
$this->setValidator('file', new sfValidatorFile(array(
'required' => true,
'path' => sfConfig::get('sf_upload_dir') . '/properties/csv',
'mime_categories' => array('csv' => array('text/csv', 'application/csv', 'application/excel', 'application/vnd.ms-excel', 'application/vnd.msexcel')),
'mime_types' => 'csv'
)));
在我的行動,我有:
if($request->isMethod('post'))
{
$propertyCsvForm->bind($request->getParameter($propertyCsvForm->getName()), $request->getFiles($propertyCsvForm->getName()));
if($propertyCsvForm->isValid())
{
$this->getUser()->setFlash('success-csv', 'The CSV was successfully imported.');
} else {
$this->getUser()->setFlash('error-csv', 'The CSV could not be imported.');
}
}
當我嘗試上載CSV我總是得到一個錯誤,這是MIME類型是不正確
Invalid mime type (text/plain).
任何想法爲什麼?
感謝
我的帖子可以幫你? http://stackoverflow.com/questions/16190929/detecting-a-mime-type-fails-in-php。 Mime類型檢測不可靠。 – meijuh
您還應該接受普通文件(即; mime_types'text/plain')作爲csv文件。如果你用你的編輯器創建一個新文件,將它保存爲csv,並想上傳它?它將具有「文本/純文本」。驗證(使用post驗證器)你的csv的**內容**(用'fgetcsv'等..)將會更好,比如檢查你是否有XX列數,用這個術語命名等。比檢查mime_types。 – j0k