public function duplicateFile(Request $request)
    {
        $namespace = $request->request->get('namespace');
        $filename = $request->request->get('filename');

        $filesystem = $this->filesystem()->getFilesystem($namespace);

        // If the filename doesn't have an extension $extensionPos will be equal to its length, so that $fileBase will
        // contain the entire filename. This also accounts for dotfiles.
        $extensionPos = strrpos($filename, '.') ?: strlen($filename);

        $fileBase = substr($filename, 0, $extensionPos) . '_copy';
        $fileExtension = substr($filename, $extensionPos);

        $n = 0;

        // Increase $n until filename_copy$n.ext doesn't exist
        do {
            ++$n;
            $destination = $fileBase . $n . $fileExtension;
        } while ($filesystem->has($destination));

        try {
            $filesystem->copy($filename, $destination);

            return $this->json($destination, Response::HTTP_OK);
        } catch (IOException $e) {
            $msg = Trans::__('Unable to duplicate file: %FILE%', ['%FILE%' => $filename]);

            $this->logException($msg, $e);

            return $this->json($msg, Response::HTTP_INTERNAL_SERVER_ERROR);
        }
    }
public function duplicateFile(Request $request)
    {
        $namespace = $request->request->get('namespace');
        $filename = $request->request->get('filename');

        $filesystem = $this->filesystem()->getFilesystem($namespace);

        // If the filename doesn't have an extension $extensionPos will be equal to its length, so that $fileBase will
        // contain the entire filename. This also accounts for dotfiles.
        $extensionPos = strrpos($filename, '.') ?: strlen($filename);

        $fileBase = substr($filename, 0, $extensionPos) . '_copy';
        $fileExtension = substr($filename, $extensionPos);

        $n = 0;

        // Increase $n until filename_copy$n.ext doesn't exist
        do {
            ++$n;
            $destination = $fileBase . $n . $fileExtension;
        } while ($filesystem->has($destination));

        try {
            $filesystem->copy($filename, $destination);

            return $this->json($destination, Response::HTTP_OK);
        } catch (IOException $e) {
            $msg = Trans::__('Unable to duplicate file: %FILE%', ['%FILE%' => $filename]);

            $this->logException($msg, $e);

            return $this->json($msg, Response::HTTP_INTERNAL_SERVER_ERROR);
        }
    }
public function duplicateFile ( Request $ request ) { $ namespace = $ request -> request -> get ( 'namespace' ) ; $ filename = $ request -> request -> get ( 'filename' ) ; $ filesystem = $ this -> filesystem ( ) -> getFilesystem ( $ namespace ) ; // If the filename doesn't have an extension $extensionPos will be equal to its length, so that $fileBase will // contain the entire filename. This also accounts for dotfiles. $ extensionPos = strrpos ( $ filename , '.' ) ? : strlen ( $ filename ) ; $ fileBase = substr ( $ filename , 0 , $ extensionPos ) . '_copy' ; $ fileExtension = substr ( $ filename , $ extensionPos ) ; $ n = 0 ; // Increase $n until filename_copy$n.ext doesn't exist do { ++ $ n ; $ destination = $ fileBase . $ n . $ fileExtension ; } while ( $ filesystem -> has ( $ destination ) ) ; try { $ filesystem -> copy ( $ filename , $ destination ) ; return $ this -> json ( $ destination , Response :: HTTP_OK ) ; } catch ( IOException $ e ) { $ msg = Trans :: __ ( 'Unable to duplicate file: %FILE%' , [ '%FILE%' => $ filename ] ) ; $ this -> logException ( $ msg , $ e ) ; return $ this -> json ( $ msg , Response :: HTTP_INTERNAL_SERVER_ERROR ) ; } }
Duplicate a file on the server.

@param Request $request

@return \Symfony\Component\HttpFoundation\JsonResponse
Duplicate a file on the server .