Как ограничить показ галереи большого пальца загрузки файла jimpery blueimp для пользователя или IP? - PullRequest
1 голос
/ 28 марта 2012

советов о том, как это сделать, было бы здорово.Я новичок в JQuery.Вот демоверсия jquery для загрузки файла

Мне нужно ограничить отображение строки галереи большого пальца для каждого пользовательского экземпляра.Я действительно не знаю лучший способ сделать это, и я открыт для предложений.

Я бы предположил, что варианты будут: создать идентификатор для каждого посещенного IP и каким-то образом создать переменную с этим IP иотображать строку галереи большого пальца, если IP соответствует :: или объявляет cookie, и соответствует cookie

Спасибо --Sandra

Ответы [ 2 ]

0 голосов
/ 30 мая 2013

На самом деле, выгрузка файлов jQuery позволяет сделать это в одной строке. Вам просто нужно добавить 'user_dirs' => true в конструкцию вашего обработчика загрузки. Затем вы можете переопределить get_user_id () для возврата идентификатора вашей системы (вместо значения по умолчанию, которым является session_id).

Самое лучшее в этом методе - это то, что он не использует куки, которыми пользователь может легко манипулировать.

см. https://github.com/blueimp/jQuery-File-Upload/wiki/PHP-user-directories

0 голосов
/ 30 марта 2012

Я прошел путь cookie, используя функции quirksmode cookieCreate и cookieRead, измененные на час (а не на дни). Значением cookie является 5-значная буквенно-цифровая строка (скрипт, основанный на этом форуме ).

Функция для значения cookie приведена ниже, хотя функции для создания и чтения cookie-файлов вам нужно будет извлечь из quirksmode по приведенной выше ссылке, поскольку я их здесь не копировал. Надеюсь, это кому-нибудь поможет. К вашему сведению, «сыр» - это стоимость печенья.

Измените upload.class.php (в каталоге server / php) и добавьте строку после строки 217. Строка 217 равна

$file_name = trim(basename(stripslashes($name)), ".\x00..\x20");

Добавить строку, изменяющую имя файла, следующим образом

$file_name = trim(basename(stripslashes($name)), ".\x00..\x20");
// add filename prefix
$file_name = $_COOKIE['user'].'_'.$file_name;

Затем, чтобы отобразить только файлы для этого пользователя, отредактируйте html-файл следующим образом

Оригинальный код

<!-- The template to display files available for download -->
<script id="template-download" type="text/x-tmpl">
{% for (var i=0, file; file=o.files[i]; i++) { %}
    <tr class="template-download fade">

Отредактированный код

<!-- The template to display files available for download -->
<script id="template-download" type="text/x-tmpl">
{% for (var i=0, file; file=o.files[i]; i++) { %}
{% grab_the_cheese = file.name.split('_'); %}
{% if (grab_the_cheese[0] == cheese) { %}
    <tr class="template-download fade">

и закройте if в нижней части

оригинал

     </tr>
 {% } %}

изм

     </tr>
 {%  } /* cheese */ %}
 {% } %}

Функция буквенно-цифровой строки из 5 цифр ниже

<script type="text/javascript">
// generate a cookie
chars = new Array('0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f','g','h','j','k','m','n','p','q','r','s','t','u','v','w','x','A','B','C','D','E','F','G','H','J','K','L','M','N','P','Q','R','S','T','U','V','W','X','Y','Z'); 
charCount = chars.length;
stringLength = 5; 
var outputString = ''; 
function mkRandomString() { 
   i = 0; 
   do { 
      random = Math.floor(Math.random()*56); 
      random = chars[random]; 
      outputString += String(random); 
      i++; 
   } 
   while (i<stringLength); 
   return outputString;
} 

// set a cookie
//var cheese = document.cookie;
createCookie('user',mkRandomString(),1);
var cheese = readCookie('user');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...