使用php上传时,将exls文件扩展名从xls更改为xlsx

时间:2016-01-21 13:06:46

标签: php excel file-upload

是否可以,如果我在上传时或在服务器上保存文件之前如何更改excel文件扩展名?我正在使用php和mysql。

三江源

2 个答案:

答案 0 :(得分:1)

你可以这样做。

move_uploaded_file($_FILES['file']['tmp_name'], upload_PATH.'/'.$_FILES['file']['name'].'x');

只会使用xlsx扩展名更改文件名称。它实际上不会将文件转换为xlsx格式。

答案 1 :(得分:0)

正如之前在其他回复中提到的,更改扩展程序实际上不会改变格式,将.xls文件作为.xlsx提供服务并不是一个好主意,因为这只会让任何人感到困惑试着读它。

你可以做什么(忽略转换和验证文件的潜在问题)是将上传的文件读入像PHPExcel(http://phpexcel.codeplex.com)这样的库中,然后使用内置函数将其导出为.xlsx文件。以下示例:

// Create a reader to read .xls format
$reader = PHPExcel_IOFactory::createReader('Excel5');
// Read the .xls file from upload storage
$workbook = $reader->load($_FILES['file']['tmp_name']);

// Create a writer to output in .xlsx format
$writer = PHPExcel_IOFactory::createWriter($workbook, 'Excel2007');
// Save file to destination .xlsx path
$writer->save($destination_path);

请记住,虽然这可能非常有效,但转换可能会破坏文件的内容。这可能是不可取的,因为转换可能导致数据丢失,格式化更改和各种怪异。