我目前正在尝试调试我的网络应用程序,并遇到了令人费解的事情。我有一个在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;
}
请记住我没有写这个插件。