Что нового

Загрузка картинок с помощью nicEdit

Статус
Закрыто для дальнейших ответов.

Leono

Новичок
Сообщения
1
Репутация
0
Всем доброго вечера, прочесал форум, но ничего того что нужно мне, не нашел.
Проблема: Загрузка картинок с помощью nicEdit работает, но загружает их на свои сервера.
Что нужно: Чтобы картинки загружались на сервер где лежит весь сайт.
Что я имею: контроллер который любезно предоставили ребята из nicEdit
Код: Выделить всё<?php
/
Контроллер загрузки файла на сервер
Обрабатывает загрузку изображения из редактора nicEdit
Возвращает в редактор путь к изображению на сервере

Сохранить изображения, загруженные на компьютер пользователя в каталог, и
возвращения URL изображения на клиента для использования в NicEdit
/
defineNICUPLOAD_PATH, .img; //путь к папке загрузки
defineNICUPLOAD_URI, /img; //url к папке загрузки
ifdefinedBASEPATH exitNo direct script access allowed;
class Uploadnic extends CI_Controller

//разрешенные расширения файлов
private nicupload_allowed_extensions;

private rfc1867 ;
//конструктор
function __construct
parent::__construct;
//иницифлизируем массив разрешенных расширений файлов
this->nicupload_allowed_extensions = arrayjpg,jpeg,png,gif,bmp;

this->rfc1867 = function_existsapc_fetch & ini_getapc.rfc1867;

function index


error=array;
//Если функции кодрования не существует заполняем массив ошибок
iffunction_existsjson_encode

array_pusherror, Передача изображения на хост не имеет необходимых зависимостей json_encode/decode;

//хрен знает, что за ай ди получаем методом пост
id=this->input->postAPC_UPLOAD_PROGRESS;
//если идентификатор пустой
ifemptyid

//берем его из url в третьем сегменте
id = this->uri->segment5;

//Если мeтод запроса post
if_SERVERREQUEST_METHOD==POST

//если айди пустой или не является числом
ifemptyid is_numericid

//вызываем метод который выведет нам текс ошибки
this->nicupload_errorНеверный идентификатор загрузки;

//если нет директории NICUPLOAD_PATH или эта директория защищена от записи
ifis_dirNICUPLOAD_PATH is_writableNICUPLOAD_PATH

this->nicupload_errorКаталог .NICUPLOAD_PATH. должен существовать на сервере и запись в него должна быть разрешена.;

//получаем имя файла из массива files
file = _FILESfile;
//получаем временное имя файла
image = filetmp_name;
//устанавливаем максимальный размер загружаемого файла
max_upload_size = this->ini_max_upload_size;// ini_max_upload_size;
iffile

this->nicupload_errorДолжно быть меньше - . this->bytes_to_readablemax_upload_size;

//вычисляем расширение
ext = strtolowersubstrstrrchrfilename, ., 1;
//получаемразмер загружаемого файла
size = getimagesizeimage;
//если размер нулевой или расширение не попадает в список допустимых расширений
ifsize in_arrayext, this->nicupload_allowed_extensions

//выводим сообщение об ошибке
this->nicupload_errorНеверный файл изображения, должно быть реальное изображение меньше, чем . this->bytes_to_readablemax_upload_size;

//задаем новое имя файлу
filename = id...ext;
//задаем путь к изображению на сервере
path = NICUPLOAD_PATH./.filename;

//####################### загрузка файла ###################//
configupload_path = NICUPLOAD_PATH./img/;
configallowed_types = nicupload_allowed_extensions;
configmax_size = max_upload_size;
configfile_name = filename;
configremove_spaces = TRUE;
//загружаем библиотеку upload и передем массив конфиг
this->load->libraryupload, config;
ifmove_uploaded_fileimage, path

this->nicupload_errorОшибка сервера, не удалось переместить файл;

ifthis->rfc1867

status = apc_fetchupload_.id;

ifstatus
status = array;

statusdone = 1;
statuswidth = size0;
statusurl = this->nicupload_file_urifilename;

ifrfc1867
apc_storeupload_.id, status;


this->nicupload_outputstatus, rfc1867;
exit;

else ifisset_GETcheck

check = _GETcheck;
ifis_numericcheck
this->nicupload_errorНеверный загрузить прогресс ID;


ifrfc1867
status = apc_fetchupload_.check;

ifstatustotal > 500000 & statuscurrent/statustotal < 0.9 // Large file and we are < 90 complete
statusinterval = 3000;
else ifstatustotal > 200000 & statuscurrent/statustotal < 0.8 // Is this a largeish file and we are < 80 complete
statusinterval = 2000;
else
statusinterval = 1000;


this->nicupload_outputstatus;
else
status = array;
statusnoprogress = true;
foreachnicupload_allowed_extensions as e
iffile_existsNICUPLOAD_PATH./.check...e
ext = e;
break;


ifext
statusurl = nicupload_file_uricheck...ext;

this->nicupload_outputstatus;



/

param <type> msg
/
function nicupload_errormsg
echo this->nicupload_outputarrayerror => msg;

/

param <type> status
param <type> showLoadingMsg
/
function nicupload_outputstatus, showLoadingMsg = false
script =
try
._SERVERREQUEST_METHOD==POST ? top. : .nicUploadButton.statusCb.json_encodestatus.;
catche alerte.message; ;

if_SERVERREQUEST_METHOD==POST
echo <script>.script.</script>;
else
echo script;


if_SERVERREQUEST_METHOD==POST & showLoadingMsg

echo
<html><body>
<div id=uploadingMessage style=text-align: center; font-size: 14px;>
<img src=.base_url.nicEdit/ajax-loader.gif style=float: right; margin-right: 40px; />
<strong>Загрузка...</strong>

Please wait
</div>
</body></html>;



exit;

/

param <type> filename
return <type>
/
function nicupload_file_urifilename
return NICUPLOAD_URI./img/.filename;

/

return <type>
/
function ini_max_upload_size
post_size = ini_getpost_max_size;
upload_size = ini_getupload_max_filesize;
ifpost_size post_size = 8M;
ifupload_size upload_size = 2M;

return minthis->ini_bytes_from_stringpost_size, this->ini_bytes_from_stringupload_size ;

/

param <type> val
return int
/
function ini_bytes_from_stringval
val = trimval;
last = strtolowervalstrlenval-1;
switchlast
// Модификатор G доступен, начиная с PHP 5.1.0
case g:
val = 1024;
case m:
val = 1024;
case k:
val = 1024;

return val;

/

param <type> bytes
return <type>
/
function bytes_to_readable bytes
if bytes<=0
return 0 Byte;

convention=1000; //1000->10x1024->2x
s=arrayB, kB, MB, GB, TB, PB, EB, ZB;
e=floorlogbytes,convention;
return roundbytes/powconvention,e,2. .se;


?>

и собственно ответ от сервера
Код: Выделить всё<script>
try
top.nicUploadButton.statusCberror:u041du0435u0432u0435u0440u043du044bu0439 u0438u0434u0435u043du0442u0438u0444u0438u043au0430u0442u043eu0440 u0437u0430u0433u0440u0443u0437u043au0438;
catche alerte.message; </script>
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Предупреждение За нарушение правил форума (пункт В.11):
Любые отрывки AutoIt кода необходимо заключать в тег [autoit]
autoit.gif
(подробнее), а обычный код соответственно в тег [code]
code.gif
(подробнее). Также большие выдержки текста помещайте под тег [spoiler]
spoiler.gif
(подробнее), там где это поддерживается естественно. Как в случае с названием темы, также короткое и эргономичное сообщение привлекает больше внимания, и шансы на получение конкретного ответа увеличиваются.


С уважением, ваш Глобальный модератор.
 

RitaHog

Новичок
Сообщения
4
Репутация
0
Всё работает, но при загрузке картинок в Новости получаю сообщение .... см. рисунок
не понятно почему двойной слэш и где это править ?
 
Статус
Закрыто для дальнейших ответов.
Верх