Ejemplo n.º 1
0
 private static function _actionMediaSilentXUpload()
 {
     $res = "{res:";
     $module = self::post(self::$class . "-media-uploader-module");
     $entity = 0 + self::post(self::$class . "-media-uploader-entity");
     //проверка модуля
     if (!$module || !@class_exists($module)) {
         $res .= "false,msg:\"Ссылочный модуль не найден [" . $module . "]\"}";
         self::silentXResponseSet($res);
         return;
     }
     $q = "SELECT `id` FROM " . db::tn("mods") . " WHERE `class`='" . $module . "'";
     $r = db::q($q, false);
     if ($r === false) {
         $res .= "false,msg:\"Ошибка операции с базой данных!\"}";
         self::silentXResponseSet($res);
         return;
     }
     $rec = mysql_fetch_assoc($r);
     if (!$rec) {
         $res .= "false,msg:\"Неверные параметры запроса: модуль не найден!\"}";
         self::silentXResponseSet($res);
         return;
     }
     $mid = 0 + $rec["id"];
     //проверка файла
     $f = media::postFile(self::$class . "-media-uploader-file");
     if (!$f) {
         $res .= "false,msg:\"Файл не загружен, убедитесь, что размер файла не превышает " . media::config("uploadFileMaxSize") . " байт!\"}";
         self::silentXResponseSet($res);
         return;
     }
     //
     $name = trim(self::post(self::$class . "-media-uploader-file-name"));
     if (!self::libValidStr($name, LIB_STR_TYPE_FILE, true, 1, 128, true, "Название файла")) {
         $res .= "false,msg:\"" . self::libLastMsg() . "\"}";
         self::silentXResponseSet($res);
         return;
     }
     $credit = trim(self::post(self::$class . "-media-uploader-file-credit"));
     $title = trim(self::post(self::$class . "-media-uploader-file-title"));
     if (self::mquotes_gpc()) {
         $title = stripslashes($title);
         $credit = stripslashes($credit);
     }
     $nameId = 0 + self::post(self::$class . "-media-uploader-file-noid") ? 0 : 1;
     if (!$name) {
         $nameId = 1;
     }
     //защита от "пустого" имени
     $nameSized = 0 + self::post(self::$class . "-media-uploader-file-nosizes") ? 0 : 1;
     //проверка директории сохранения
     $dir = self::post(self::$class . "-media-uploader-destination");
     $dir = trim($dir, "/");
     if (!$dir && $entity) {
         $dir = "" . $entity;
     }
     $values = array();
     $values["name"] = $name;
     $values["name_id"] = $nameId;
     $values["name_sized"] = $nameSized;
     $values["directory"] = $dir;
     $values["title"] = $title;
     $values["credit"] = $credit;
     $item = media::create($module, $f, $values, array("oid" => $entity));
     $item = "item:" . self::libJsonMake($item);
     //$item="item:{id:".$id.",pid:0,width:".$szW.",height:".$szH.",bytes:".$fsize.",dt:\"".$dtSQL."\",dts:".$dt.",name_id:".$nameId.",name_sized:".$nameSized.",size_delim:\"".self::$config["sizeDelimiter"]."\",extension:\"".$ext."\",name:\"".$name."\",path:\"".$dir."\",title:\"".$title."\",credit:\"".$credit."\",content_type:\"".$ctp."\"}";
     $res .= "true,msg:\"\"," . $item . "}";
     self::silentXResponseSet($res);
 }