2012-03-28 2 views
1

Tipps, wie dies zu tun wäre großartig. Ich bin ein jQuery-Neuling. Hier ist die jquery file upload demoWie kann man die Anzeige der gallery-Datei für den Upload von Blueimp-jquery-Dateien pro Benutzer oder IP beschränken?

Ich muss die Anzeige der Thumb-Gallery-Zeile pro Benutzerinstanz beschränken. Ich kenne den besten Weg nicht und bin offen für Vorschläge.

Ich würde vermuten, dass die Optionen wären :: eine ID pro besuchen IP erstellen und irgendwie eine Variable mit dieser IP und nur Anzeige Daumen Galerie Zeile erstellen, wenn IP Spielen :: oder ein Cookie erklären, und passen Sie das Cookie

Dank --Sandra

Antwort

0

ging ich das Cookie Weg quirksmode cookieCreate und cookieRead Funktionen verändert die Stunde mit (statt in Tagen). Der Wert des Cookies ist eine 5-stellige alphanumerische Zeichenfolge (Skript basierend auf dieser forum).

Die Funktion für den Cookie-Wert ist unten, obwohl die Funktionen zum Erstellen und Lesen des Cookies Sie aus Quirksmode mit dem oben angegebenen Link abrufen müssen, da ich sie hier nicht kopiert habe. Hoffe, das hilft jemandem. FYI, der "Käse" ist der Wert des Kekses.

Alter upload.class.php (in Server/php-Verzeichnis) und fügen Sie eine Zeile nach Zeile 217. Linie 217

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

eine Linie Fügen Sie den Dateinamen zu ändern als

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

folgt Um dann nur Dateien für diesen Benutzer anzuzeigen, bearbeiten Sie Ihre HTML-Datei wie folgt:

Originalcode

<!-- 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"> 

Edited Code

<!-- 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"> 

und schließen Sie das, wenn an der Unterseite

original

 </tr> 
{% } %} 

bearbeitet

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

die 5-stellige alphanumerische Zeichenfolge Funktion unten

<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'); 
0

Mit jQuery File Uploads können Sie dies in einer einzigen Zeile tun. Sie müssen nur 'user_dirs' => true im Konstrukt Ihres Upload-Handlers hinzufügen. Dann können Sie get_user_id() überschreiben, um die ID Ihres Systems zurückzugeben (anstelle des Standards session_id).

Das beste an dieser Methode ist, dass sie nicht auf einem Cookie basiert, das ein Benutzer leicht manipulieren kann.

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

Verwandte Themen