@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.)
hq.recaptime.dev/wiki/Phorge
phorge
phabricator
1<?php
2
3final class PholioImageUploadController extends PholioController {
4
5 public function handleRequest(AphrontRequest $request) {
6 $viewer = $request->getViewer();
7
8 $phid = $request->getStr('filePHID');
9 $replaces_phid = $request->getStr('replacesPHID');
10 $title = $request->getStr('title');
11 $description = $request->getStr('description');
12
13 $file = id(new PhabricatorFileQuery())
14 ->setViewer($viewer)
15 ->withPHIDs(array($phid))
16 ->executeOne();
17 if (!$file) {
18 return new Aphront404Response();
19 }
20
21 if (!phutil_nonempty_string($title)) {
22 $title = $file->getName();
23 }
24
25 $image = PholioImage::initializeNewImage()
26 ->setAuthorPHID($viewer->getPHID())
27 ->attachFile($file)
28 ->setName($title)
29 ->setDescription($description)
30 ->makeEphemeral();
31
32 $view = id(new PholioUploadedImageView())
33 ->setUser($viewer)
34 ->setImage($image)
35 ->setReplacesPHID($replaces_phid);
36
37 $content = array(
38 'markup' => $view,
39 );
40
41 return id(new AphrontAjaxResponse())->setContent($content);
42 }
43
44}