Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Лимит на загружаемых фото на сайте

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Веб-программинг] >> Лимит на загружаемых фото на сайте
Имя
Сообщение << Старые топики   Новые топики >>
Лимит на загружаемых фото на сайте - 2011-11-30 21:55:34.010000   
SunRise13

Сообщений: 20
Оценки: 0
Присоединился: 2011-05-08 00:19:59.966666
Привет всем вебмастерам,

У меня есть сайт хостинг изображений,Есть у меня такая проблема,Сделал лимит для загрузка 5мб,все работает и нормально,Но есть большая проблема,Когда кто то загружает фото с большим pixel'ом ,пример 12000ч12000 сервер загружаеться и потом Internal server error

Хочу код что бы ставил лимит для загружаемых фото на сайте по пикселей,на ширину и для на высоту


Как могу делать этого?Сайт подготовлен с помощью CakePHP

Вот код для загружаемых фото:


      file_size_limit : "5 MB",
        file_types : "*.jpg;*.png",
        file_types_description : "Фото",
        file_upload_limit : 100,

Post #: 1
RE: Лимит на загружаемых фото на сайте - 2011-12-01 22:02:10.616666   
heaven7

Сообщений: 134
Оценки: 5
Присоединился: 2007-12-29 20:49:38.910000
&lt;?php $photo_file = '/tmp/blablabla.jpg'; $size = @getimagesize($photo_file); if (!$size) die('Недопустимый формат картинки'); $width = $size[0]; //ширина картинки $height = $size[1]; //высота if ($width&gt;1024) die('Картика слишком широкая'); if ($height&gt;768) die('Картика слишком высокая'); ?&gt;
Post #: 2
RE: Лимит на загружаемых фото на сайте - 2011-12-02 21:05:40.530000   
SunRise13

Сообщений: 20
Оценки: 0
Присоединился: 2011-05-08 00:19:59.966666
heaven7, спабибо за ответ,это кажеться не работал,потому что я использую CakePHP.буду добавит весь код,плз соедини кодов,я новичок не могу

вот весь код для этого файла:


&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"&gt; &lt;html xmlns="http://www.w3.org/1999/xhtml" version="-//W3C//DTD XHTML 1.1//EN" xml:lang="en"&gt; &lt;head&gt; var progress = new FileProgress(file, this.customSettings.progressTarget); progress.setError(); progress.toggleCancel(false); switch (errorCode) { case SWFUpload.QUEUE_ERROR.FILE_EXCEEDS_SIZE_LIMIT: progress.setStatus("фото слишком большая."); this.debug("Error Code: File too big, File name: " + file.name + ", File size: " + file.size + ", Message: " + message); break; case SWFUpload.QUEUE_ERROR.ZERO_BYTE_FILE: case SWFUpload.QUEUE_ERROR.INVALID_FILETYPE: progress.setStatus("Invalid File Type."); this.debug("Error Code: Invalid File Type, File name: " + file.name + ", File size: " + file.size + ", Message: " + message); break; default: if (file !== null) { progress.setStatus("Unhandled Error"); } this.debug("Error Code: " + errorCode + ", File name: " + file.name + ", File size: " + file.size + ", Message: " + message); break; } } catch (ex) { this.debug(ex); } } //здесь было другие коды поэтому стерел //здесь было другие коды поэтому стерел //здесь было другие коды поэтому стерел function uploadSuccess(file, serverData) { try { var progress = new FileProgress(file, this.customSettings.progressTarget); progress.setComplete(); progress.setStatus("&lt;?php echo ucfirst(__('uploaded', true)) ?&gt;."); progress.toggleCancel(false); } catch (ex) { this.debug(ex); } } function uploadError(file, errorCode, message) { try { var progress = new FileProgress(file, this.customSettings.progressTarget); progress.setError(); progress.toggleCancel(false); switch (errorCode) { case SWFUpload.UPLOAD_ERROR.HTTP_ERROR: progress.setStatus("Upload Error: " + message); this.debug("Error Code: HTTP Error, File name: " + file.name + ", Message: " + message); break; case SWFUpload.UPLOAD_ERROR.UPLOAD_FAILED: progress.setStatus("Upload Failed."); this.debug("Error Code: Upload Failed, File name: " + file.name + ", File size: " + file.size + ", Message: " + message); break; case SWFUpload.UPLOAD_ERROR.IO_ERROR: progress.setStatus("Server (IO) Error"); this.debug("Error Code: IO Error, File name: " + file.name + ", Message: " + message); break; case SWFUpload.UPLOAD_ERROR.SECURITY_ERROR: progress.setStatus("Security Error"); this.debug("Error Code: Security Error, File name: " + file.name + ", Message: " + message); break; case SWFUpload.UPLOAD_ERROR.UPLOAD_LIMIT_EXCEEDED: progress.setStatus("Upload limit exceeded."); this.debug("Error Code: Upload Limit Exceeded, File name: " + file.name + ", File size: " + file.size + ", Message: " + message); break; case SWFUpload.UPLOAD_ERROR.FILE_VALIDATION_FAILED: progress.setStatus("Failed Validation. Upload skipped."); this.debug("Error Code: File Validation Failed, File name: " + file.name + ", File size: " + file.size + ", Message: " + message); break; var swfu; window.onload = function() { var settings = { flash_url : "&lt;?php echo $this-&gt;webroot ?&gt;swf/swfupload.swf", upload_url: "&lt;?php echo $html-&gt;url('/photos/upload?PHPSESSID=' . session_id() . '&amp;privacy=' . $_GET['privacy'], true) ?&gt;", // Relative to the SWF file post_params: {}, file_size_limit : "8 MB", // лимит для фото file_types : "*.jpg;*.png;*.gif;*.bmp", file_types_description : "Photos or pictures", file_upload_limit : 100, file_queue_limit : 0, custom_settings : { progressTarget : "fsUploadProgress", cancelButtonId : "btnCancel" }, debug: false, // The event handler functions are defined in handlers.js file_queued_handler : fileQueued, file_queue_error_handler : fileQueueError, file_dialog_complete_handler : fileDialogComplete, upload_start_handler : uploadStart, upload_progress_handler : uploadProgress, upload_error_handler : uploadError, upload_success_handler : uploadSuccess, upload_complete_handler : uploadComplete, queue_complete_handler : queueComplete // Queue plugin event }; swfu = new SWFUpload(settings); }; &lt;/script&gt; &lt;?php endif ?&gt; &lt;/head&gt; &lt;body&gt; &nbsp;
почему то не мог аккуратно писать коды,пожалуйста скачайте тут:
http://www.share.az/lkle54b1nndu/test.txt.html
Post #: 3
Страниц:  [1]
Все форумы >> [Веб-программинг] >> Лимит на загружаемых фото на сайте







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.