Exemple #1
0
}
$postdata = file_get_contents("php://input");
//echo($postdata['size']);
/* Создаем соединение */
mysql_connect($hostname, $username, $password) or die("Не могу создать соединение");
/* Выбираем базу данных. Если произойдет ошибка - вывести ее */
mysql_select_db($dbName) or die(mysql_error());
mysql_query('SET NAMES utf8');
/* Определяем текущую дату */
$cdate = date("Y-m-d H:i:s");
/* Составляем запрос для получения из БД номера последней добавленной записи*/
$query = "SELECT MAX(id) FROM " . $table;
/* Выполняем запрос и выясняем имя загружаемой картинки. Если произойдет ошибка - вывести ее. */
$numlast = mysql_query($query) or die(mysql_error());
$numlastzap = mysql_fetch_array($numlast);
$fname = getRandomFileName() . '.jpeg';
$url = "upload/" . $fname;
$fp = fopen($url, 'wb');
fwrite($fp, $postdata);
fclose($fp);
if (exif_imagetype($url) != IMAGETYPE_JPEG) {
    echo 'The picture is not a jpeg';
} else {
    $size = getimagesize($url);
    if ($size[0] < $size[1]) {
        //портрет
        $size_src = $size[0];
        $src_y = ($size[1] - $size_src) / 2;
        $src_x = 0;
    } else {
        //альбом
 * Date: 5/9/15
 * Time: 4:26 PM
 */
define('DS', DIRECTORY_SEPARATOR);
//定义简写的文件分隔符
define('FILE_ROOT', __DIR__);
define('FILE_ROOT_UPLOAD', FILE_ROOT . DS . 'upload');
//定于上传的根目录
require "upload.lib.php";
if ($_SERVER['REQUEST_METHOD'] == "POST" || $_SERVER['REQUEST_METHOD'] == "PUT") {
    if (!empty($_FILES)) {
        $result = array();
        foreach ($_FILES as $v) {
            if ($v["error"] != 0) {
                header("Status: 415 Unsupported Media Type");
                die;
            }
        }
        foreach ($_FILES as $index => $item) {
            $fileName = getRandomFileName($index);
            move_uploaded_file($item["tmp_name"], __DIR__ . '/' . $fileName);
            $result[$index] = __DIR__ . '/' . $fileName;
        }
        //header('Content-type: application/json');
        echo json_encode($result);
        exit;
    }
    header("Status: 400 Bad Request");
} else {
    header("Status: 405 Method Not Allowed");
}
Exemple #3
0
    do {
        $name = md5(microtime() . rand(0, 9999));
        $file = $path . $name . $extension;
    } while (file_exists($file));
    return $name;
}
$responseArr = array('error_flag' => 1, 'server_mess' => "", 'img_src' => "");
if (isset($_FILES['images'])) {
    $types = array('image/gif', 'image/png', 'image/jpeg', 'image/pjpeg');
    if (!in_array($_FILES['images']['type'], $types)) {
        $responseArr['server_mess'] = "Недопустимый тип файла. Допустимо загружать только изображения: *.gif, *.png, *.jpg";
        print_r(json_encode($responseArr, JSON_UNESCAPED_UNICODE));
        exit;
    }
    if ($_FILES["images"]["size"] > 1024 * 3 * 1024) {
        $responseArr['server_mess'] = "Размер файла превышает три мегабайта";
        print_r(json_encode($responseArr, JSON_UNESCAPED_UNICODE));
        exit;
    }
    if (is_uploaded_file($_FILES["images"]["tmp_name"])) {
        $path = $_FILES['images']['name'];
        $ext = pathinfo($path, PATHINFO_EXTENSION);
        $file_name = getRandomFileName('loaded_sources', $ext);
        move_uploaded_file($_FILES["images"]["tmp_name"], $addr = "../loaded_sources/" . $file_name . "." . $ext);
        $responseArr['img_src'] = $addr;
        $responseArr['error_flag'] = 0;
    } else {
        $responseArr['server_mess'] = "Ошибка загрузки файла";
    }
}
print_r(json_encode($responseArr, JSON_UNESCAPED_UNICODE));
 /**
  * send response (save uploaded file, resize if required)
  * @access public
  *
  */
 public function sendResponse()
 {
     $iErrorNumber = CKFINDER_CONNECTOR_ERROR_NONE;
     $_config =& CKFinder_Connector_Core_Factory::getInstance("Core_Config");
     $oRegistry =& CKFinder_Connector_Core_Factory::getInstance("Core_Registry");
     $oRegistry->set("FileUpload_fileName", "unknown file");
     $uploadedFile = array_shift($_FILES);
     if (!isset($uploadedFile['name'])) {
         $this->_errorHandler->throwError(CKFINDER_CONNECTOR_ERROR_UPLOADED_INVALID);
     }
     $sUnsafeFileName = CKFinder_Connector_Utils_FileSystem::convertToFilesystemEncoding(CKFinder_Connector_Utils_Misc::mbBasename($uploadedFile['name']));
     $sFileName = CKFinder_Connector_Utils_FileSystem::secureFileName($sUnsafeFileName);
     if ($sFileName != $sUnsafeFileName) {
         $iErrorNumber = CKFINDER_CONNECTOR_ERROR_UPLOADED_INVALID_NAME_RENAMED;
     }
     $oRegistry->set("FileUpload_fileName", $sFileName);
     $this->checkConnector();
     $this->checkRequest();
     if (!$this->_currentFolder->checkAcl(CKFINDER_CONNECTOR_ACL_FILE_UPLOAD)) {
         $this->_errorHandler->throwError(CKFINDER_CONNECTOR_ERROR_UNAUTHORIZED);
     }
     $_resourceTypeConfig = $this->_currentFolder->getResourceTypeConfig();
     if (!CKFinder_Connector_Utils_FileSystem::checkFileName($sFileName) || $_resourceTypeConfig->checkIsHiddenFile($sFileName)) {
         $this->_errorHandler->throwError(CKFINDER_CONNECTOR_ERROR_INVALID_NAME);
     }
     $resourceTypeInfo = $this->_currentFolder->getResourceTypeConfig();
     if (!$resourceTypeInfo->checkExtension($sFileName)) {
         $this->_errorHandler->throwError(CKFINDER_CONNECTOR_ERROR_INVALID_EXTENSION);
     }
     //更改上传文件命名规范
     $sExtension = CKFinder_Connector_Utils_FileSystem::getExtension($sFileName);
     $sFileName = getRandomFileName() . '.' . $sExtension;
     $oRegistry->set("FileUpload_fileName", $sFileName);
     $oRegistry->set("FileUpload_url", $this->_currentFolder->getUrl());
     $maxSize = $resourceTypeInfo->getMaxSize();
     if (!$_config->checkSizeAfterScaling() && $maxSize && $uploadedFile['size'] > $maxSize) {
         $this->_errorHandler->throwError(CKFINDER_CONNECTOR_ERROR_UPLOADED_TOO_BIG);
     }
     $htmlExtensions = $_config->getHtmlExtensions();
     $sExtension = CKFinder_Connector_Utils_FileSystem::getExtension($sFileName);
     if ($htmlExtensions && !CKFinder_Connector_Utils_Misc::inArrayCaseInsensitive($sExtension, $htmlExtensions) && ($detectHtml = CKFinder_Connector_Utils_FileSystem::detectHtml($uploadedFile['tmp_name'])) === true) {
         $this->_errorHandler->throwError(CKFINDER_CONNECTOR_ERROR_UPLOADED_WRONG_HTML_FILE);
     }
     $secureImageUploads = $_config->getSecureImageUploads();
     if ($secureImageUploads && ($isImageValid = CKFinder_Connector_Utils_FileSystem::isImageValid($uploadedFile['tmp_name'], $sExtension)) === false) {
         $this->_errorHandler->throwError(CKFINDER_CONNECTOR_ERROR_UPLOADED_CORRUPT);
     }
     switch ($uploadedFile['error']) {
         case UPLOAD_ERR_OK:
             break;
         case UPLOAD_ERR_INI_SIZE:
         case UPLOAD_ERR_FORM_SIZE:
             $this->_errorHandler->throwError(CKFINDER_CONNECTOR_ERROR_UPLOADED_TOO_BIG);
             break;
         case UPLOAD_ERR_PARTIAL:
         case UPLOAD_ERR_NO_FILE:
             $this->_errorHandler->throwError(CKFINDER_CONNECTOR_ERROR_UPLOADED_CORRUPT);
             break;
         case UPLOAD_ERR_NO_TMP_DIR:
             $this->_errorHandler->throwError(CKFINDER_CONNECTOR_ERROR_UPLOADED_NO_TMP_DIR);
             break;
         case UPLOAD_ERR_CANT_WRITE:
             $this->_errorHandler->throwError(CKFINDER_CONNECTOR_ERROR_ACCESS_DENIED);
             break;
         case UPLOAD_ERR_EXTENSION:
             $this->_errorHandler->throwError(CKFINDER_CONNECTOR_ERROR_ACCESS_DENIED);
             break;
     }
     $sServerDir = $this->_currentFolder->getServerPath();
     while (true) {
         $sFilePath = CKFinder_Connector_Utils_FileSystem::combinePaths($sServerDir, $sFileName);
         if (file_exists($sFilePath)) {
             $sFileName = CKFinder_Connector_Utils_FileSystem::autoRename($sServerDir, $sFileName);
             $oRegistry->set("FileUpload_fileName", $sFileName);
             $iErrorNumber = CKFINDER_CONNECTOR_ERROR_UPLOADED_FILE_RENAMED;
         } else {
             if (false === move_uploaded_file($uploadedFile['tmp_name'], $sFilePath)) {
                 $iErrorNumber = CKFINDER_CONNECTOR_ERROR_ACCESS_DENIED;
             } else {
                 if (isset($detectHtml) && $detectHtml === -1 && CKFinder_Connector_Utils_FileSystem::detectHtml($sFilePath) === true) {
                     @unlink($sFilePath);
                     $this->_errorHandler->throwError(CKFINDER_CONNECTOR_ERROR_UPLOADED_WRONG_HTML_FILE);
                 } else {
                     if (isset($isImageValid) && $isImageValid === -1 && CKFinder_Connector_Utils_FileSystem::isImageValid($sFilePath, $sExtension) === false) {
                         @unlink($sFilePath);
                         $this->_errorHandler->throwError(CKFINDER_CONNECTOR_ERROR_UPLOADED_CORRUPT);
                     }
                 }
             }
             if (is_file($sFilePath) && ($perms = $_config->getChmodFiles())) {
                 $oldumask = umask(0);
                 chmod($sFilePath, $perms);
                 umask($oldumask);
             }
             break;
         }
     }
     if (!$_config->checkSizeAfterScaling()) {
         $this->_errorHandler->throwError($iErrorNumber, true, false);
     }
     //resize image if required
     require_once CKFINDER_CONNECTOR_LIB_DIR . "/CommandHandler/Thumbnail.php";
     $_imagesConfig = $_config->getImagesConfig();
     if ($_imagesConfig->getMaxWidth() > 0 && $_imagesConfig->getMaxHeight() > 0 && $_imagesConfig->getQuality() > 0) {
         CKFinder_Connector_CommandHandler_Thumbnail::createThumb($sFilePath, $sFilePath, $_imagesConfig->getMaxWidth(), $_imagesConfig->getMaxHeight(), $_imagesConfig->getQuality(), true);
     }
     if ($_config->checkSizeAfterScaling()) {
         //check file size after scaling, attempt to delete if too big
         clearstatcache();
         if ($maxSize && filesize($sFilePath) > $maxSize) {
             @unlink($sFilePath);
             $this->_errorHandler->throwError(CKFINDER_CONNECTOR_ERROR_UPLOADED_TOO_BIG);
         } else {
             $this->_errorHandler->throwError($iErrorNumber, true, false);
         }
     }
     CKFinder_Connector_Core_Hooks::run('AfterFileUpload', array(&$this->_currentFolder, &$uploadedFile, &$sFilePath));
 }