本文整理汇总了PHP中OldLocalFile::newFromArchiveName方法的典型用法代码示例。如果您正苦于以下问题:PHP OldLocalFile::newFromArchiveName方法的具体用法?PHP OldLocalFile::newFromArchiveName怎么用?PHP OldLocalFile::newFromArchiveName使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类OldLocalFile
的用法示例。
在下文中一共展示了OldLocalFile::newFromArchiveName方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: getFreshURL
public function getFreshURL($name, $definedName)
{
$title = Title::newFromText($definedName, NS_FILE);
if ($definedName != $name) {
$file = OldLocalFile::newFromArchiveName($title, RepoGroup::singleton()->getLocalRepo(), $name);
return wfReplaceImageServer($file->getUrl());
} else {
$file = new LocalFile($title, RepoGroup::singleton()->getLocalRepo());
return wfReplaceImageServer($file->getUrl());
}
}
示例2: newFromArchiveName
function newFromArchiveName($title, $archiveName)
{
return OldLocalFile::newFromArchiveName($title, $this, $archiveName);
}
示例3: importUpload
/**
* @return bool
*/
function importUpload()
{
# Construct a file
$archiveName = $this->getArchiveName();
if ($archiveName) {
wfDebug(__METHOD__ . "Importing archived file as {$archiveName}\n");
$file = OldLocalFile::newFromArchiveName($this->getTitle(), RepoGroup::singleton()->getLocalRepo(), $archiveName);
} else {
$file = wfLocalFile($this->getTitle());
$file->load(File::READ_LATEST);
wfDebug(__METHOD__ . 'Importing new file as ' . $file->getName() . "\n");
if ($file->exists() && $file->getTimestamp() > $this->getTimestamp()) {
$archiveName = $file->getTimestamp() . '!' . $file->getName();
$file = OldLocalFile::newFromArchiveName($this->getTitle(), RepoGroup::singleton()->getLocalRepo(), $archiveName);
wfDebug(__METHOD__ . "File already exists; importing as {$archiveName}\n");
}
}
if (!$file) {
wfDebug(__METHOD__ . ': Bad file for ' . $this->getTitle() . "\n");
return false;
}
# Get the file source or download if necessary
$source = $this->getFileSrc();
$flags = $this->isTempSrc() ? File::DELETE_SOURCE : 0;
if (!$source) {
$source = $this->downloadSource();
$flags |= File::DELETE_SOURCE;
}
if (!$source) {
wfDebug(__METHOD__ . ": Could not fetch remote file.\n");
return false;
}
$sha1 = $this->getSha1();
if ($sha1 && $sha1 !== sha1_file($source)) {
if ($flags & File::DELETE_SOURCE) {
# Broken file; delete it if it is a temporary file
unlink($source);
}
wfDebug(__METHOD__ . ": Corrupt file {$source}.\n");
return false;
}
$user = User::newFromName($this->user_text);
# Do the actual upload
if ($archiveName) {
$status = $file->uploadOld($source, $archiveName, $this->getTimestamp(), $this->getComment(), $user, $flags);
} else {
$status = $file->upload($source, $this->getComment(), $this->getComment(), $flags, false, $this->getTimestamp(), $user);
}
if ($status->isGood()) {
wfDebug(__METHOD__ . ": Successful\n");
return true;
} else {
wfDebug(__METHOD__ . ': failed: ' . $status->getHTML() . "\n");
return false;
}
}
示例4: importUpload
/**
* @return bool
*/
function importUpload()
{
# Construct a file
$archiveName = $this->getArchiveName();
if ($archiveName) {
wfDebug(__METHOD__ . "Importing archived file as {$archiveName}\n");
$file = OldLocalFile::newFromArchiveName($this->getTitle(), RepoGroup::singleton()->getLocalRepo(), $archiveName);
} else {
$file = wfLocalFile($this->getTitle());
$file->load(File::READ_LATEST);
wfDebug(__METHOD__ . 'Importing new file as ' . $file->getName() . "\n");
if ($file->exists() && $file->getTimestamp() > $this->getTimestamp()) {
$archiveName = $file->getTimestamp() . '!' . $file->getName();
$file = OldLocalFile::newFromArchiveName($this->getTitle(), RepoGroup::singleton()->getLocalRepo(), $archiveName);
wfDebug(__METHOD__ . "File already exists; importing as {$archiveName}\n");
}
}
if (!$file) {
wfDebug(__METHOD__ . ': Bad file for ' . $this->getTitle() . "\n");
return false;
}
# Get the file source or download if necessary
$source = $this->getFileSrc();
$autoDeleteSource = $this->isTempSrc();
if (!strlen($source)) {
$source = $this->downloadSource();
$autoDeleteSource = true;
}
if (!strlen($source)) {
wfDebug(__METHOD__ . ": Could not fetch remote file.\n");
return false;
}
$tmpFile = new TempFSFile($source);
if ($autoDeleteSource) {
$tmpFile->autocollect();
}
$sha1File = ltrim(sha1_file($source), '0');
$sha1 = $this->getSha1();
if ($sha1 && $sha1 !== $sha1File) {
wfDebug(__METHOD__ . ": Corrupt file {$source}.\n");
return false;
}
$user = $this->getUserObj() ?: User::newFromName($this->getUser());
# Do the actual upload
if ($archiveName) {
$status = $file->uploadOld($source, $archiveName, $this->getTimestamp(), $this->getComment(), $user);
} else {
$flags = 0;
$status = $file->upload($source, $this->getComment(), $this->getComment(), $flags, false, $this->getTimestamp(), $user);
}
if ($status->isGood()) {
wfDebug(__METHOD__ . ": Successful\n");
return true;
} else {
wfDebug(__METHOD__ . ': failed: ' . $status->getHTML() . "\n");
return false;
}
}
示例5: onSubmit
public function onSubmit($data)
{
$this->useTransactionalTimeLimit();
$old = $this->getRequest()->getText('oldimage');
$localFile = $this->page->getFile();
$oldFile = OldLocalFile::newFromArchiveName($this->getTitle(), $localFile->getRepo(), $old);
$source = $localFile->getArchiveVirtualUrl($old);
$comment = $data['comment'];
if ($localFile->getSha1() === $oldFile->getSha1()) {
return Status::newFatal('filerevert-identical');
}
// TODO: Preserve file properties from database instead of reloading from file
return $localFile->upload($source, $comment, $comment, 0, false, false, $this->getUser());
}