gpt4 book ai didi

php - 上传的 docx 文件变成 zip

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:55:33 25 4
gpt4 key购买 nike

我目前正在使用 symfony 1.4 并希望允许用户上传 Microsoft Word docx 文件。使用下面的 sfWidgetFormInputFile 小部件和 sfValidatorFile,用户可以使用简单的 Web 表单选择并成功上传他们的 docx 文件。

$this->widgetSchema['file_name'] = new sfWidgetFormInputFile(array('label' => 'File'));

$this->validatorSchema['file_name'] = new sfValidatorFile(array(
'required' => true,
'path' => sfConfig::get('sf_upload_dir').DIRECTORY_SEPARATOR.sfConfig::get('app_dir_file_sharing').DIRECTORY_SEPARATOR,
'mime_types' => array('application/msword',
'application/vnd.ms-word',
'application/msword',
'application/msword; charset=binary')
), array(
'invalid' => 'Invalid file.',
'required' => 'Select a file to upload.',
'mime_types' => 'The file must be a supported type.'
));

问题是文件上传后,扩展名改为.zip,文件包含一个xml文件的文件树。我的理解是,这是因为 Office 2007 现在使用的是 Open xml 文件格式。有什么方法可以使用 symfony 或 PHP 来防止这种情况发生吗?

最佳答案

问题是内容嗅探。新的 Office 格式是 .zip 文件,如果在上传时嗅探到内容,浏览器会将其识别为 ZIP 文件并设置 Content-Type header 。同样,在下载时,除非您的服务器设置了正确的 Content-Type HTTP 响应 header ,否则浏览器将假定这是一个 ZIP 文件。

关于php - 上传的 docx 文件变成 zip,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2104127/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com