Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
File upload 如何更改joomla文件上载中支持的文件类型_File Upload_Joomla - Fatal编程技术网

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']我在脚本顶部添加了它