电子表格上传变量空

时间:2013-09-17 16:02:48

标签: php apache cakephp cakephp-1.3

我目前正在尝试调试我的网络应用程序,并遇到了令人费解的事情。我有一个在Hostgator上运行的Web应用程序,该应用程序的一部分解析XLS电子表格并将信息丢弃在数据库中。那么现场版本没问题。当我将Web应用程序拉到我的本地计算机时,看起来保存电子表格的变量是空的!我没有改变任何代码!所以现在我坐在她身边问自己我的服务器设置有问题吗?我想张贴这个,看看你们是否知道为什么会发生这种情况。这是我的代码

public function saveSpreadsheet($uploadedFile) {
    if(!empty($uploadedFile) && !empty($uploadedFile['tmp_name'])) {
        if($uploadedFile['error'] == UPLOAD_ERR_OK) {
            $pulledData = $this->extract($uploadedFile['tmp_name']);
            die(debug($pulledData));

出于某种原因,#pulledData在我的本地计算机上为空,但在实时版本中有效。另外,当我调试uploadedFile时我可以看到结果,所以uploadFile是空的是不可能的。有任何想法吗?

die的结果(debug($ uploadedFile));

  Array
(
[name] => SLTest1.xls
[type] => application/vnd.ms-excel
[tmp_name] => C:\wamp\tmp\phpA7D0.tmp
[error] => 0
[size] => 1787904
)

/**
 * The method that calls extract method on the assigned adapter.
 * 
 * @access public
 * @param mixed &$model
 * @param string $file
 * @return void
 */
public function extract(&$model, $file = null, $args = array()) {
    $ret = false;
    if (!$file) {
        return $ret;
    }
    $settings = $this->settings[$model->alias];
    $data = $this->_parseFile($file, $settings);
    if (!$data) {
        return $data;
    }
    $spreadsheet = $this->_toArray($data);
    $adapter =& $this->_getInstance($settings);
    if (method_exists($adapter, 'beforeExtract')) {
        $args = $adapter->beforeExtract($args);
    }
    if ($args !== false) {
        if (method_exists($adapter, 'extract')) {
            $ret = $adapter->extract($spreadsheet, $args);
        }
        if (method_exists($adapter, 'afterExtract')) {
            $ret = $adapter->afterExtract($ret, $args);
        }
    }

    return $ret;
}

/**
 * Takes the file path and checks if a file exists. If it doesn't,
 * method returns false. If it does exist the Spreadsheet_Excel_Reader
 * is returned.
 * 
 * @access public
 * @param mixed $file
 * @return void
 */
public function _parseFile($file, $settings) {
    $path = $settings['file_path'];
    if (strpos($file, '/') !== false) {
        $pieces = explode('/', $file);
        $file = array_pop($pieces);
        $path = str_replace('//', '/', implode('/', $pieces));
    }
    $file = $path.'/'.$file;

    if (strpos($file, '.xls') === false && strpos($file, '.xlsx') === false) {
        if (file_exists($file.'.xls')) {
            $file .= '.xls';
        } else if (file_exists($file.'.xlsx')) {
            $file .= '.xlsx';
        } else if(strpos($file, '/tmp/') === false) {
            $file = false;
        }
    }

    $data = false;
    if ($file && file_exists($file)) {
        $data = new Spreadsheet_Excel_Reader($file, true);
    }
    return $data;
}

请记住我没有写这个插件。

0 个答案:

没有答案