本文整理汇总了PHP中Gdn_Upload::allowFileExtension方法的典型用法代码示例。如果您正苦于以下问题:PHP Gdn_Upload::allowFileExtension方法的具体用法?PHP Gdn_Upload::allowFileExtension怎么用?PHP Gdn_Upload::allowFileExtension使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Gdn_Upload
的用法示例。
在下文中一共展示了Gdn_Upload::allowFileExtension方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: handleAddonUpload
/**
* Handle form upload of an addon zip archive.
*
* @return array
*/
protected function handleAddonUpload()
{
$Upload = new Gdn_Upload();
$Upload->allowFileExtension(null);
$Upload->allowFileExtension('zip');
$AnalyzedAddon = [];
try {
// Validate the upload.
$TmpFile = $Upload->validateUpload('File');
$Extension = pathinfo($Upload->getUploadedFileName(), PATHINFO_EXTENSION);
// Generate the target name.
$TargetFile = $Upload->generateTargetName('addons', $Extension);
$TargetPath = PATH_UPLOADS . '/' . $TargetFile;
if (!file_exists(dirname($TargetPath))) {
mkdir(dirname($TargetPath), 0777, true);
}
// Save the file to a temporary location for parsing.
if (!move_uploaded_file($TmpFile, $TargetPath)) {
throw new Exception("We couldn't save the file you uploaded. Please try again later.", 400);
}
$AnalyzedAddon = UpdateModel::analyzeAddon($TargetPath, true);
// If the long description is blank, load up the readme if it exists
$formDescription = $this->Form->getFormValue('Description2', '');
if ($formDescription == '') {
$Readme = $this->parseReadme($TargetPath);
if ($Readme) {
$AnalyzedAddon['Description2'] = $Readme;
}
} else {
$AnalyzedAddon['Description2'] = $formDescription;
}
// Get an icon if one exists.
$Icon = $this->extractIcon($TargetPath, val('Icon', $AnalyzedAddon, ''));
if ($Icon) {
// Overwrite info array value with the path to the saved file.
$AnalyzedAddon['Icon'] = $Icon;
}
// Set the filename for the CDN.
$Upload->EventArguments['OriginalFilename'] = AddonModel::slug($AnalyzedAddon, true) . '.zip';
// Save the uploaded file. After this, we no longer have a local copy to analyze.
$Parsed = $Upload->saveAs($TargetPath, $TargetFile);
$AnalyzedAddon['File'] = $Parsed['SaveName'];
unset($AnalyzedAddon['Path']);
trace($AnalyzedAddon, 'Analyzed Addon');
$this->Form->formValues($AnalyzedAddon);
} catch (Exception $ex) {
$this->Form->addError($ex);
// Delete the erroneous file.
try {
if (isset($AnalyzedAddon) && isset($AnalyzedAddon['File'])) {
$Upload->delete($AnalyzedAddon['File']);
}
} catch (Exception $Ex2) {
}
}
if (isset($TargetPath) && file_exists($TargetPath)) {
unlink($TargetPath);
}
return $AnalyzedAddon;
}