示例#1
0
* @copyright 2013 Bjoern Schiessle schiessle@owncloud.com
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
* License as published by the Free Software Foundation; either
* version 3 of the License, or any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
*
* You should have received a copy of the GNU Affero General Public
* License along with this library.  If not, see <http://www.gnu.org/licenses/>.
*
*/
OCP\JSON::checkAppEnabled('files_versions');
//OCP\JSON::callCheck();
$file = $_GET['file'];
$revision = (int) $_GET['revision'];
list($uid, $filename) = OCA\Files_Versions\Storage::getUidAndFilename($file);
$versionName = '/' . $uid . '/files_versions/' . $filename . '.v' . $revision;
$view = new OC\Files\View('/');
$ftype = $view->getMimeType('/' . $uid . '/files/' . $filename);
header('Content-Type:' . $ftype);
OCP\Response::setContentDispositionHeader(basename($filename), 'attachment');
OCP\Response::disableCaching();
OCP\Response::setContentLengthHeader($view->filesize($versionName));
OC_Util::obEnd();
$view->readfile($versionName);
示例#2
0
}
session_write_close();
$ownerView = new \OC\Files\View('/' . $user . '/files');
$mime = $ownerView->getMimeType($img);
list($mimePart, ) = explode('/', $mime);
if ($mimePart === 'image') {
    $fileInfo = $ownerView->getFileInfo($img);
    if ($fileInfo['encrypted'] === true) {
        $local = $ownerView->toTmpFile($img);
    } else {
        $local = $ownerView->getLocalFile($img);
    }
    $rotate = false;
    if (is_callable('exif_read_data')) {
        //don't use OCP\Image here, using OCP\Image will always cause parsing the image file
        $exif = @exif_read_data($local, 'IFD0');
        if (isset($exif['Orientation'])) {
            $rotate = $exif['Orientation'] > 1;
        }
    }
    OCP\Response::setContentDispositionHeader(basename($img), 'attachment');
    if ($rotate) {
        $image = new OCP\Image($local);
        $image->fixOrientation();
        $image->show();
    } else {
        //use the original file if we dont need to rotate, saves having to re-encode the image
        header('Content-Type: ' . $mime);
        $ownerView->readfile($img);
    }
}