Получите реальный путь вместо 'fakepath' при загрузке файла - PullRequest
0 голосов
/ 23 мая 2018

У меня возникает следующая проблема:

Когда пользователь загружает файл с вводом файла HTML, а затем я хочу получить путь к файлу.Например, я получаю C:/fakepath/filename.txt.

Я понимаю, что браузер должен знать точный путь к файлу из соображений безопасности.Поэтому мне было интересно, возможно ли вообще с каким-нибудь хаком, каким-то образом в .net или с дополнительным плагином jquery / js получить полный путь к файлу.

Почему ?

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

Любые предложения или рекомендации для этого подхода?

Если это действительно невозможно, как

Как разрешить C: \ fakepath?

Как получить реальный путь к файлу с помощью Jquery

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

Ответы [ 3 ]

0 голосов
/ 23 мая 2018

Вы не можете сделать это.

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

0 голосов
/ 21 февраля 2019

Поскольку моей целью было сделать имя загруженного файла видимым для конечного пользователя, а затем отправить его через функцию php mail (), все, что я сделал для решения этой проблемы, было:

в вашем js-файле

Старая функция:

var fileuploadinit = function(){
    $('#career_resume').change(function(){
        var pathwithfilename = $('#career_resume').val();
        $('.uploadedfile').html("Uploaded File Name :" + pathwithfilename).css({
            'display':'block'
        });
    });
};

Исправленная функция:

var fileuploadinit = function(){
    $('#career_resume').change(function(){
        var pathwithfilename = $('#career_resume').val();
        var filename = pathwithfilename.substring(12);
        $('.uploadedfile').html("Uploaded File Name :" + filename).css({
            'display':'block'
        });
    });
};
$(document).ready(function () {
fileuploadinit();
});

Старый результат:

Загруженное имя файла: C: \ fakepath \ Coverpage.pdf

Новый результат:

Загруженное имя файла: Coverpage.pdf

Надеюсь, это поможет:)

0 голосов
/ 23 мая 2018

Для этого вам понадобится собственный код, работающий вне поля браузера, поскольку браузеры НЕ предназначены для этого.

Я имею в виду нечто уродливое, например ActiveX, flash, COM-объект, пользовательское расширение браузера илидругое необычное нарушение безопасности, которое может открыть свой собственный OpenFileDialog и вставить это значение в поле ввода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...