class FileController in File Entity (fieldable files) 8.2
Class FileController
Hierarchy
- class \Drupal\Core\Controller\ControllerBase implements ContainerInjectionInterface uses LoggerChannelTrait, MessengerTrait, LinkGeneratorTrait, RedirectDestinationTrait, UrlGeneratorTrait, StringTranslationTrait
- class \Drupal\file_entity\Controller\FileController
Expanded class hierarchy of FileController
File
- src/
Controller/ FileController.php, line 21
Namespace
Drupal\file_entity\ControllerView source
class FileController extends ControllerBase {
/**
* The file system service.
*
* @var \Drupal\Core\File\FileSystemInterface
*/
protected $fileSystem;
/**
* {@inheritdoc}
*/
public function __construct(FileSystemInterface $file_system) {
$this->fileSystem = $file_system;
}
/**
* {@inheritdoc}
*/
public static function create(ContainerInterface $container) {
return new static($container
->get('file_system'));
}
/**
* Upload
*/
public function FileAddUpload() {
}
/**
* File
*/
public function FileAddUploadFile() {
}
/**
* Usage
*
* @param $file
*/
public function FileUsage($file) {
//@TODO: File Usage here.
}
/**
* Returns a HTTP response for a file being downloaded.
*
* @param FileInterface $file
* The file to download, as an entity.
*
* @return Response
* The file to download, as a response.
*/
public function download(FileInterface $file) {
// Ensure there is a valid token to download this file.
if (!$this
->config('file_entity.settings')
->get('allow_insecure_download')) {
if (!isset($_GET['token']) || $_GET['token'] !== $file
->getDownloadToken()) {
return new Response(t('Access to file @url denied', array(
'@url' => $file
->getFileUri(),
)), 403);
}
}
$headers = array(
'Content-Type' => Unicode::mimeHeaderEncode($file
->getMimeType()),
'Content-Disposition' => 'attachment; filename="' . Unicode::mimeHeaderEncode($this->fileSystem
->basename($file
->getFileUri())) . '"',
'Content-Length' => $file
->getSize(),
'Content-Transfer-Encoding' => 'binary',
'Pragma' => 'no-cache',
'Cache-Control' => 'must-revalidate, post-check=0, pre-check=0',
'Expires' => '0',
);
// Let other modules alter the download headers.
\Drupal::moduleHandler()
->alter('file_download_headers', $headers, $file);
// Let other modules know the file is being downloaded.
\Drupal::moduleHandler()
->invokeAll('file_transfer', array(
$file
->getFileUri(),
$headers,
));
try {
return new BinaryFileResponse($file
->getFileUri(), 200, $headers);
} catch (FileNotFoundException $e) {
return new Response(t('File @uri not found', array(
'@uri' => $file
->getFileUri(),
)), 404);
}
}
/**
* Return an Ajax dialog command for editing a file inline.
*
* @param \Drupal\file\FileInterface $file
* The file being edited.
*
* @return \Drupal\Core\Ajax\AjaxResponse
* An Ajax response with a command for opening or closing the a dialog
* containing the edit form.
*/
public function inlineEdit(FileInterface $file) {
// Build the file edit form.
$form_object = $this
->entityTypeManager()
->getFormObject('file', 'inline_edit');
$form_object
->setEntity($file);
$form_state = (new FormState())
->setFormObject($form_object)
->disableRedirect();
// Building the form also submits.
$form = $this
->formBuilder()
->buildForm($form_object, $form_state);
$dialog_selector = '#file-entity-inline-edit-' . $file
->id();
// Return a response, depending on whether it's successfully submitted.
if (!$form_state
->isExecuted()) {
// Return the form as a modal dialog.
$form['#attached']['library'][] = 'core/drupal.dialog.ajax';
$title = $this
->t('Edit file @file', [
'@file' => $file
->label(),
]);
$response = AjaxResponse::create()
->addCommand(new OpenDialogCommand($dialog_selector, $title, $form, [
'width' => 800,
]));
return $response;
}
else {
// Return command for closing the modal.
return AjaxResponse::create()
->addCommand(new CloseDialogCommand($dialog_selector));
}
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
ControllerBase:: |
protected | property | The configuration factory. | |
ControllerBase:: |
protected | property | The current user service. | 1 |
ControllerBase:: |
protected | property | The entity form builder. | |
ControllerBase:: |
protected | property | The entity manager. | |
ControllerBase:: |
protected | property | The entity type manager. | |
ControllerBase:: |
protected | property | The form builder. | 2 |
ControllerBase:: |
protected | property | The key-value storage. | 1 |
ControllerBase:: |
protected | property | The language manager. | 1 |
ControllerBase:: |
protected | property | The module handler. | 2 |
ControllerBase:: |
protected | property | The state service. | |
ControllerBase:: |
protected | function | Returns the requested cache bin. | |
ControllerBase:: |
protected | function | Retrieves a configuration object. | |
ControllerBase:: |
private | function | Returns the service container. | |
ControllerBase:: |
protected | function | Returns the current user. | 1 |
ControllerBase:: |
protected | function | Retrieves the entity form builder. | |
ControllerBase:: |
protected | function | Retrieves the entity manager service. | |
ControllerBase:: |
protected | function | Retrieves the entity type manager. | |
ControllerBase:: |
protected | function | Returns the form builder service. | 2 |
ControllerBase:: |
protected | function | Returns a key/value storage collection. | 1 |
ControllerBase:: |
protected | function | Returns the language manager service. | 1 |
ControllerBase:: |
protected | function | Returns the module handler. | 2 |
ControllerBase:: |
protected | function |
Returns a redirect response object for the specified route. Overrides UrlGeneratorTrait:: |
|
ControllerBase:: |
protected | function | Returns the state storage service. | |
FileController:: |
protected | property | The file system service. | |
FileController:: |
public static | function |
Instantiates a new instance of this class. Overrides ControllerBase:: |
|
FileController:: |
public | function | Returns a HTTP response for a file being downloaded. | |
FileController:: |
public | function | Upload | |
FileController:: |
public | function | File | |
FileController:: |
public | function | Usage | |
FileController:: |
public | function | Return an Ajax dialog command for editing a file inline. | |
FileController:: |
public | function | ||
LinkGeneratorTrait:: |
protected | property | The link generator. | 1 |
LinkGeneratorTrait:: |
protected | function | Returns the link generator. | |
LinkGeneratorTrait:: |
protected | function | Renders a link to a route given a route name and its parameters. | |
LinkGeneratorTrait:: |
public | function | Sets the link generator service. | |
LoggerChannelTrait:: |
protected | property | The logger channel factory service. | |
LoggerChannelTrait:: |
protected | function | Gets the logger for a specific channel. | |
LoggerChannelTrait:: |
public | function | Injects the logger channel factory. | |
MessengerTrait:: |
protected | property | The messenger. | 29 |
MessengerTrait:: |
public | function | Gets the messenger. | 29 |
MessengerTrait:: |
public | function | Sets the messenger. | |
RedirectDestinationTrait:: |
protected | property | The redirect destination service. | 1 |
RedirectDestinationTrait:: |
protected | function | Prepares a 'destination' URL query parameter for use with \Drupal\Core\Url. | |
RedirectDestinationTrait:: |
protected | function | Returns the redirect destination service. | |
RedirectDestinationTrait:: |
public | function | Sets the redirect destination service. | |
StringTranslationTrait:: |
protected | property | The string translation service. | 1 |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | 2 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. | |
UrlGeneratorTrait:: |
protected | property | The url generator. | |
UrlGeneratorTrait:: |
protected | function | Returns the URL generator service. | |
UrlGeneratorTrait:: |
public | function | Sets the URL generator service. | |
UrlGeneratorTrait:: |
protected | function | Generates a URL or path for a specific route based on the given parameters. |