1

Kann mir bitte jemand sagen, wie kann ich den Upload von Audio/Video-Dateien mit Blueimp jQuery Datei-Upload einschränken?Blueimp jQuery Datei hochladen Audio/Video Einschränkung

Ich habe das Whitelisting mit der folgenden Option acceptFileTypes: /(\.|\/)(gif|jpe?g|png)$/i, gefunden, aber ich möchte Audio- und Video-Dateien auf die Blacklist setzen, anstatt Whitelisting.

Ich habe versucht, die .exe und .js Dateien acceptFileTypes: /(\.|\/)(?!exe|js)$/i zu negieren, die alle Dateitypen unabhängig von ihren Erweiterungen einschränkt.

Vielen Dank im Voraus

Antwort

1

Sie setzen $ in falscher Stelle. Wenn Sie alles außer .exe finden wollen, .js verwenden

(\.|\/)(?!(exe|js)$) 

Regex Demo

Grund: - Lookaheads sind von Null Breite Behauptung. Es bedeutet, dass sie keine Charaktere verbrauchen. In Ihrem regex

(\.|\/)(?!exe|js)$ 

Sie überprüfen für exe oder js kurz nach . Look-Ahead verwendet. Sobald es überprüft wird, wird die Position unmittelbar nach . zurückgesetzt. Jetzt prüft Ihre Regex, ob es das Ende der Zeichenfolge ist, indem Sie $ verwenden. Aber es ist ein Zeichen übrig, also ist es nicht Ende der Zeichenfolge und Ihre Regex wird für jede Erweiterung fehlschlagen.

Unten gibt es einige visuelle abcd.jpg für Ihre regex (\.|\/)(?!exe|js)$ für Zeichenfolge zu erklären. (Spaces nur für Klarheit)

abcd . jpg 
     ^^ ^^ 
     || || 
(Matches .) (New position after consuming .) 

Was folgt nach .jpg ist, die weder zu exe oder js < --- gut bis hier

Wie Look-Ahead ist von Null abgestimmt werden sollte -Breite, die Position bleibt, wo es nach der Überprüfung ist, was folgt ist weder exe noch js

abcd . jpg 
     ^^ 
     || 
Check whether its $ i.e. end of string. This is False because we have j. So no match is returned 

Wenn Sie Audio- und Video-Datei auf die schwarze Liste wollen, hier ist Starter

(?:[.\\])(?!(mp3|m4a|wmv|mp4|mkv)$)\w+ 

Regex Demo