我正在使用Excel Reader将excel文件导入我的数据库。 我也在使用postgres和cakephp。 我遇到的第一个障碍是,在将我的视图发送到我的控制器时出现以下错误。这个错误发生在我的控制器中:
非法字符串偏移' tmp_name'
这是我的控制器和视图的代码
<?php
App::import('Vendor', 'excel_reader2');
class SoyaproductorcomprasController extends AppController {
public $components = array('Session','RequestHandler');
public function logout() {
$this->redirect($this->Auth->logout());
}
public function excel() {
if ($this->request->is('post')) {
$data = new Spreadsheet_Excel_Reader();
$data->read($this->request->data['SoyaProductorCompra']['excel']['tmp_name']);
$this->set('data', $data);
}
}
}
?>
和我的观点
<?php echo $this->Form->create('SoyaProductorCompra');?>
<?php
echo $this->Form->input('excel',array( 'type' => 'file', 'label'=>'Ingrese excel'));
echo $this->Form->end('Submit')
?>
我正在尝试实施this tutorial:
答案 0 :(得分:1)
您很可能需要设置表单的编码类型。
<?php echo $this->Form->create('SoyaProductorCompra');?>
应该是:
<?php echo $this->Form->create('SoyaProductorCompra',
array('enctype' => 'multipart/form-data);?>
您还可以使用&#39;输入&#39; =&GT; &#39;文件&#39; 而不是enctype。
有关详细信息,请查看FormHelper :: create()和FormHelper :: file()的文档。我实际上喜欢使用type属性而不是enctype,因为它会设置enctype并确保表单同时是POST。
http://book.cakephp.org/2.0/en/core-libraries/helpers/form.html