C:\ fakepath
создано 04.03.2013 18:26:18При использовании на вебсайте формы загрузки файлов, частенько возникает необходимость проверить и обработать имя файла с помощью JavaScript кода.
Не важно какие цели Вы при этом преследуете, важно что у Вас есть в этом необходимость. С недавних пор при такой проверке проявились проблемы, которые как обычно связаны с нашим горячо любимым браузером Internet Explorer от фирмы Микрософт. Его разработчики спят и видят - как бы сделать так, чтобы об их трудах не забыли.
Вот и в этот раз они вместо того, чтобы просто отдать значение имени файла написанное в поле input.value, как это делают все нормальные браузеры, придумали отдавать его дополнив, по их мнению, очень важной информацией в виде дописки типа C:\fakepath\.
Зачем они это делают трудно понять. Но видимо это от большого желания показать путь к файлу, но JavaScript-у это не разрешено. Вот и получается такой путь C:\fakepath\.
Попробуйте посмотреть работу кода типа этого в разных браузерах:
Решение проблемы в коде JavaScript выглядит так:
var pos = fileName.lastIndexOf("\\");
if(pos != -1)
{
fileName = fileName.substr(pos+1);
}
Здесь мы находим последний слэш в строке имени файла, принятого по input.value и отбрасываем все, что было до него, включая и сам слэш.
«Важнейшей задачей для нас является сейчас: учиться и учиться» В.И. Ленин