Pytanie jak usunąć c fakepath w przeglądarce webkit jak chrome, safari, opera?


Jak usunąć c fakepath w przeglądarce webkit jak chrome, safari, opera?

w IE i Firefox jest to tylko nazwa pliku show, jest OK

Ale w Chrome, operze, safari. To jest pokaz C: \ fakepath \ 700.jpg

Jak mogę usunąć C: \ fakepath \ w Chrome, operze, safari.

<script type="text/javascript" src="http://code.jquery.com/jquery-1.6.4.js"></script>
<style type="text/css">
.inputWrapper {
    overflow: hidden;
    position: relative;
    cursor: pointer;
    /*Using a background color, but you can use a background image to represent a button*/
    background-color: #DDF;
}
.fileInput {
    cursor: pointer;
    height: 100%;
    position:absolute;
    top: 0;
    right: 0;
    /*This makes the button huge so that it can be clicked on*/
    font-size:50px;
}
.hidden {
    /*Opacity settings for all browsers*/
    opacity: 0;
    -moz-opacity: 0;
    filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0)
}
</style>

<script type="text/javascript">//<![CDATA[ 
$(window).load(function(){
$(function() {
    $(".inputWrapper").mousedown(function() {
        var button = $(this);
        button.addClass('clicked');
        setTimeout(function(){
            button.removeClass('clicked');
        },50);
    });

    $('input[type=file]').change(function() {
        var $this = $(this);
        $this.parent().find('span').text($this.val());
    });
});
});//]]>  
</script>
<div class="inputWrapper" id="inputWrapper" style="height: 56px; width: 128px;">
    <input class="fileInput hidden" type="file" name="file2"/>
    <span></span>
</div>

14
2018-01-29 08:54


pochodzenie


możliwy duplikat Użyj jQuery, aby uzyskać plik wejściowy o wybranej nazwie pliku bez ścieżki - Joel H.
Przejrzyj odpowiedzi i zaznacz je. - Fusion


Odpowiedzi:


Po prostu użyj wyrażenia regularnego, aby usunąć wszystko przed (i włącznie) z ostatniego \.

 var path = "C:\\fakepath\\example.doc";
 var filename = path.replace(/^.*\\/, "");
 console.log(filename);

Oczywiście, dostaniesz path z Twojego pliku wejściowego.


21
2018-01-29 09:49



proszę daj mi trochę demo na mój kod, dziękuję ^^ - user3215821
Demo poniżej. Kredyt do @Quentin - Lewis Buckley
Ostrzeżenie: to rozwiązanie jest dobre, ale nie doskonałe. Jeśli nazwa pliku zawiera ukośnik odwrotny (np. W systemach uniksowych), nie otrzymasz właściwej nazwy pliku! Lepszym rozwiązaniem jest użycie path.replace(/^C:\\fakepath\\/, "") - stackular
@stackular yours nie jest również doskonały. i masz literówkę. replace ("C: \\ fakepath \\", ""); - atilkan
@emrah Jaka literówka? I nie używaj wyrażeń regularnych do przechwytywania `C: \ fakepath` na początku nazwy pliku? - stackular


Otrzymasz nazwę pierwszego pliku.

document.getElementById("yourInputElement").files[0].name

Jeśli chcesz uzyskać wiele nazw plików, musisz powtórzyć files.


10
2018-02-21 20:17



Tak ... Co więcej, nie potrzebujesz nawet jQuery. - Fusion


Powinno Ci się udać coś takiego:

<script type="text/javascript">
$(function() {
    $(".inputWrapper").mousedown(function() {
        var button = $(this);
        button.addClass('clicked');
        setTimeout(function(){
            button.removeClass('clicked');
        },50);
    });
    $('input[type=file]').on('change', function(e) {
        var filename = $(e.currentTarget).val().replace(/^.*\\/, "");
        $this.parent().find('span').text(filename);
    });
});
</script>

0
2018-02-20 13:00





Właściwie to nie działa, gdy masz podfoldery zawarte w ścieżce, a javascript nie może nic zrobić dla twojego systemu plików

więc tutaj jest plik reg, który naprawi problem

<fakepath_fix.reg>

, poniżej kod jest dla intranetu

[HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Internet Settings \ Zones \ 1] "160A" = dword: 00000000

, poniżej kod jest dla zaufanych stron

[HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Internet Settings \ Zones \ 2] "160A" = dword: 00000000

, poniżej kod jest dla Internetu

[HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Internet Settings \ Zones \ 3] "160A" = dword: 00000000

, poniżej kod dla strefy zamkniętej

[HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Internet Settings \ Zones \ 4] "160A" = dword: 00000000


-4
2018-01-07 12:27





Użyj poniższego kodu:

<label for="file" class="input input-file"><div class="button"><input type="file" onchange="this.parentNode.nextSibling.value = this.value" name="uploadfiliron" class="uploadimg" data-gotfile='uploadimg-1'>Browse</div><input type="text" readonly class="uploadimg-1"></label>

I to jest skrypt

<script>$('body').on('change','.uploadimg',function(e){
var filename = $(this).val().replace(/.*(\/|\\)/, '');
var getft = $(this).attr('data-gotfile');
console.log(getft+" "+filename);
if(filename=='')
    {
        $('.'+getft).val('No file chosen');
    }
    else
    {
        $('.'+getft).val('Your file name: '+filename);
    }});</script>

-4
2018-05-01 09:24



Uniksowe nazwy plików mogą zawierać odwrotne ukośniki, to rozwiązanie nie uwzględnia tego. - corvus_192