File upload 如何更改joomla文件上载中支持的文件类型
我需要上传一些文件通过我的定制组件在后端。我这样做了,文件路径也被插入到数据库中。我正在使用File upload 如何更改joomla文件上载中支持的文件类型,file-upload,joomla,File Upload,Joomla,我需要上传一些文件通过我的定制组件在后端。我这样做了,文件路径也被插入到数据库中。我正在使用JFile进行上传。我可以上传所有图片和zip文件,但我不能上传PDF文件。 我用来上传的代码是: JFile::upload( $file['tmp_name'], $filepath); 在JFileJoomla类中,我应该在哪里输入支持的文件类型。帮我上传PDF文件 我的HTML代码是: <tr> <td> <label for="uploaded"
JFile
进行上传。我可以上传所有图片和zip文件,但我不能上传PDF文件。
我用来上传的代码是:
JFile::upload( $file['tmp_name'], $filepath);
在JFile
Joomla类中,我应该在哪里输入支持的文件类型。帮我上传PDF文件
我的HTML代码是:
<tr>
<td>
<label for="uploaded"><?php echo JText::_( 'Upload file' ); ?>:</label>
</td>
<td>
<input type="file" name="uploaded" value="" size="30" class="inputbox" />
</td>
</tr>
:
是否使用Joomla模型表单创建上载字段?
如果是-尝试在字段属性中定义“接受”参数。
更多信息请点击此处:
最新答复:
请尝试使用此代码
$file = JFactory::getApplication()->input->files->get('uploaded');
$filename = JFile::makeSafe($file['name']);
$filename = str_replace(' ', '_', $filename);
$fileSize = $filename['size'];
$uploadedFileNameParts = explode('.',$filename);
$uploadedFileExtension = array_pop($uploadedFileNameParts);
$validFileExts = array('zip', 'pdf', 'jpg');
$extension = JFile::getExt($file['name']);
if (!in_array($extension, $validFileExts)) {
// return an arror if the file type isn't allowed
echo JText::_( 'INVALID EXTENSION' );
return;
}
//check file size. If over 2MB, throw an error
else if ( $fileSize > 2000000 ){
echo JText::_( 'FILE BIGGER THAN 2MB' );
return;
}
else {
// your upload script
}
摘自Joomla文档,并做了一些更改:
$file = JFactory::getApplication()->input->files->get('uploaded');
$filename = JFile::makeSafe($file['name']);
$filename = str_replace(' ', '_', $filename);
$fileSize = $filename['size'];
$uploadedFileNameParts = explode('.',$filename);
$uploadedFileExtension = array_pop($uploadedFileNameParts);
$validFileExts = explode(',', 'zip,pdf,jpg');
$extOk = false;
foreach($validFileExts as $key => $value){
if( preg_match("/$value/i", $uploadedFileExtension ) ){
$extOk = true;
}
}
if ($extOk == false || !$validFileExts) {
// return an arror if the file type isn't allowed
echo JText::_( 'INVALID EXTENSION' );
return;
}
//check file size. If over 2MB, throw an error
else if ( $fileSize > 2000000 ){
echo JText::_( 'FILE BIGGER THAN 2MB' );
return;
}
else {
// your upload script
}
希望这有帮助我在tableJFile::upload()中使用输入字段;方法本身不验证允许的文件类型。你还可以添加模型的代码吗?我用上传代码和数据库保存代码更新了问题是的..这解决了我的pblm..谢谢你的房客。。。我认为如果条件你不小心使用了$validFileTypes而不是$validFileText.。@user007-啊,是的,我的错误。很高兴它帮助了你:)我如何在上面的代码中指定文件大小限制???@user007-我已经更新了我的答案。它的代码在
elseif()
语句中,定义为$fileSize=$filename['size']代码>我在脚本顶部添加了它