Я отображаю окно открытия файла, чтобы пользователь мог выбрать файл на своем компьютере:
<input type="file" id="upload_input"/>
но когда я получаю файл, который пользователь выбрал в Javascript (см. Код ниже), который я считаю «безопасным», так как javascript выполняется на стороне клиента - все, что я получаю, это файл, а не полный путь - несмотря на тот факт, что полный путь и имя файла появляются в поле рядом с кнопкой «Обзор», которое всегда дает вам input type = file .
Другими словами, пользователь выбирает файл, расположенный на его компьютере, например, по адресу c: /aFolder/thefile.rtf.
Затем после выбора этого файла в поле рядом с кнопкой «Обзор» появится полный путь: c: /aFolder/thefile.rtf
Тем не менее, когда я программно извлекаю значение этого поля, весь путь удаляется, и все, что у меня есть, это имя файла:
filename = document.getElementById('upload_input').value;
alert("The selected file name is " + filename);
Почему элемент управления input type = file даже потрудился показать пользователю полный путь, если вы не можете получить его программно?
В конце концов, все это происходит на стороне клиента, это не похоже на полный путь на сервере.
Еще один вопрос: я использую приведенное выше имя файла и создаю полный путь к этому файлу, только ради работы моего кода JWplayer. Полный путь, который я создаю для разработки, здесь временный.
Другими словами, когда я получаю имя файла выше, я делаю это:
vidFname = ("c:/xampp/htdocs/theWebsite/aFolder/" + filename);
alert("The full path is: " + vidFname);
и затем я пытаюсь воспроизвести видео в Jwplayer:
playlist = { file: vidFname };
theJwPlayer().load(playlist);
theJwPlayer().play(true);
но Jwplayer выдает мне «Отказано в доступе или файл не найден».
Вот что мне пришлось изменить, чтобы заставить это работать:
vidFname = ("http://localhost/theWebsite/aFolder/" + filename);
alert("The full path is: " + vidFname);
playlist = { file: vidFname };
theJwPlayer().load(playlist);
theJwPlayer().play(true);
При изменении пути к моему локальному хосту вышеуказанный код работает - видео загружается и успешно воспроизводится.
ПРИМЕЧАНИЕ. Я не думаю, что это проблема с «разрешениями для папок», поскольку я могу воспроизводить один и тот же файл в одном месте с другим приложением .FLV player (автономным) на моем компьютере. Так что не мои права доступа к папке в моем c: / xampp заставляют Jwplayer сказать «разрешение запрещено или файл не найден».
Почему Jwplayer (или это Javascript ..?) Не позволяет мне использовать полный путь к файлу при вызове
jwplayer (). load ()?
В конце концов, я использую 'theJwPlayer' в Javascript , который работает на клиентском компьютере, и файл тоже на клиентском компьютере, так что это не проблема безопасности.
Или я что-то здесь упускаю? ПРИМЕЧАНИЕ: Я полностью извиняюсь, если этот вопрос неосведомлен, но на моем текущем уровне веб-программирования, который вы, возможно, уже давно прошли, это озадачивает, ОСОБЕННО jwplayer (). Load () не работает с полным именем пути.