作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我目前正在使用 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/
我有以下正则表达式 /[a-zA-Z0-9_-]/ 当字符串只包含从 a 到z 大小写、数字、_ 和 -。 我的代码有什么问题? 能否请您向我提供一个简短的解释和有关如何修复它的代码示例? //var
我是一名优秀的程序员,十分优秀!