Получение размера и типа файла с сервера
Приветствую Вас о великие ГУРУ JavaScript'инга... У меня к вам маленькая просьбачка... По ссылке на файл определять тип(разрешение) файла и его размер. С типом разобрался, а вот размер как взять ума не приложу... Проскакивал через инфу что AJAX запрос может дать мне размер, но как это сделать?!??!?! ВЗРЫВ МОЗГА... курю гугл уже второй день.... не помогает(((
|
опа... я похоже промахнулся с веткой форума... не казните сильно, мозг уже подзасох... модераторы не сочтите за наглость перенесите тему в нужный раздел. просто у меня нет таких полномочий
|
Цитата:
|
ссылка формируется не сервером, а пишется пользователем не сведующем во "всяких таких не понятных штуках"... плюс 1-е таких ссылок уже очень много и переделывать их ручками долго, 2-е так сказал BOSS...
|
И куда, и кому эта ссылка от пользователя попадает, или так и болтается у клиента?
Если это ссылка на внешний ресурс, то без получения содержимого размер его нельзя знать. |
немного уточню... На сайте нашей больницы (под управлением UCOZ) имеется некое множество страниц со статическим контентом который содержит ссылки на документы или архивы с документами(которые время от времени обновляются) хоронящиеся на том же сервере. Так вот нужно получить размер этих самых файлов и влепить его к ссылке типа: Устав ЦГБ [1,25 Mb]
|
А этот ответ тогда как понимать ссылка формируется не сервером, а пишется пользователем, если файлы не чужие а свои?
Получить информацию о файле может любой серверный язык, а вот как у вас там ссылки вставляются и кем, разбирайтесь, сделаете этот процесс нормальным, значит будете владеть информацией. |
Цитата:
Как вариант, можно рассмотреть два решения 1. Формировать контент динамично на сервере, указывая размеры файлов 2. Вешать на каждую страницу скрипт, который будет запрашивать размер файлов у сервера, после чего отображать его на странице |
Цитата:
|
Цитата:
Цитата:
|
не поймите меня превратно, но контентом на страницах занимается "баран" которому вбить в голову что можно при добавлении файла всё корректно оформить и забыть к сожалению не возможно, кроме того эти "бараны" меняются как перчатки у светской дамы... и за каждым потом исправлять... убейте меня сразу!!! Мне проще заставить "барана" дописать в ссылку id=url-doc, а остальное сделает скрипт.
|
которые время от времени обновляются, а не постоянно, а вот клиент в любом случае будет постоянно дергать сервер.
|
Цитата:
|
Цитата:
Цитата:
Цитата:
|
Сайты работают не за счет юкозов и джумл, а за счет серверных скриптов, разбираетесь в них?
Принимая форму срипт вашего юкоза просто обязан проверять есть ли файл по ссылке указанной кем-то "неадекватным", а заодно получить и прописать параметры этого файла. Возлагать на клиентскую сторону задачу "загрузи, узнай сколько весит и сообщи пользователю", это называется... говорить не буду как, но думаю медицине будет понятно о чем речь. |
ок... в таком случае вопрос возникает следующий... мы имеем TEXTAREA в котором есть какой-то текст, не интересующие нас ссылки и интересующие нас ссылки. Вопрос... как мне в TEXTAREA найти ссылку с нужным ID и произвести в ней изменения: добавить атрибут и например текст
|
Цитата:
это вообще безотказный вариант, ни тебе багов, ни тебе лагов... вот только одно но... вот надо чтобы ссылки из <a id="url" href="file.doc">link</a>становились вот такими <a class="doc file-ico" id="url" href="file.doc">link<br>Скачать Текстовый документ MS Word 2003 (<b>doc [23.2 kB]</b>)</a> у меня почти готовый вариант был готов, но он обрабатывал ссылки на странице. Ранее в теме ГУРУ посоветовал не грузить сервак такими глупостями и сделать серверный скрипт который делал что мне нужно не каждый раз как кто-то зашёл на страницу, а при сохранении изменений в HTML редакторе (если я правильно понял профессора laimas) |
Цитата:
|
ksa, со слов laimas сервак будет напрягаться за зря каждый раз при входе клиента на страницу где скрипт будет обрабатывать ссылку. Этот вариант у меня почти был закончен, не получалось только полученный размер втулить в ссылку. А на сервере я вообще пока не пойму как мне найти именно тот кусок текста из TEXTAREA который мне нужен и перепилить его тут-же в поле редактора перед созхранением.
|
Цитата:
Что предлагал laimas, только наверное сам laimas и поймет... :) Я вот не пойму и тебя... Ранее ты писал о статичных страницах с сылками на документы... Теперь у тебя фигурируют какие-то "TEXTAREA". :blink: Для статичных страниц, дабы никого (кроме сервера на напрягать), я цеплял бы к ним скрипт, который: - пройдет по ссылкам - соберет имена файлов с их путями - запросит сервер по их размерам - преобразует ссылки к нужному виду Т.о. никто из участников даже не заметит "усложнений" в своей работе. |
Цитата:
Цитата:
Возвращаясь к первоначальной идее я столкнулся с проблемой что размер я получаю, если файл на том-же серваке что и страница со скриптом, но к ссылке прикрутить не получается... если я не совсем ясно объяснил, то вот страница примера такой код <a id="url" href="http://dongb.ru/file/pril6.zip">pril6.zip</a> <a id="url" href="http://dongb.ru/file/1-0001.jpg">1-0001.jpg</a> <a id="url" href="http://dongb.ru/file/tp_2014.docx">tp_2014.docx</a> <a id="url" href="http://dongb.ru/file/2199-r_perechen.pdf">2199-r_perechen.pdf</a> <a id="url" href="http://dongb.ru/file/price/prejskurant_01_10_2013.doc">prejskurant_01_10_2013.doc</a> обрабатывает такой скрипт $("a#url").each(function(indx, element) { var file = $(this).attr("href"); var parts, ext = (parts = file.split("/").pop().split(".")).length > 1 ? parts.pop() : ""; $(this).addClass(ext + " file-ico"); var type_file = "файл"; if (ext == "doc") { var type_file = "Текстовый документ MS Word 2003"; } if (ext == "docx") { var type_file = "Текстовый документ MS Word 2007"; } if (ext == "rtf") { var type_file = "Текстовый документ MS WordPad"; } if (ext == "xls") { var type_file = "Табличный документ MS Exel 2003"; } if (ext == "xlsx") { var type_file = "Табличный документ MS Exel 2007"; } if (ext == "pdf") { var type_file = "Документ Adobe Acrobat Reader"; } $(this).append("<br>Скачать " + type_file + " (<b>" + ext + "</b>)"); $(this).addClass("curr"); url = $("a.curr").attr("href"); var request,sizen; request = $.ajax({ type: "HEAD", url: url, success: function (data) { sizen = request.getResponseHeader("Content-Length"); alert("Size "+url+" is " + sizen); $("a#url.curr").append(sizen); } }); $(this).removeClass("curr"); }); |
Цитата:
Если в форме разрешено добавление ссылок типа "а-ля <a href=...>", то это плохо. Если разрешена вставка ссылок посредством BB-тегов, это нормально. Хотя небо не упадет если и непосредственно теги разрешены, вот только работы серверу по приему формы будет невпроворот. Так или иначе, принимая форму с текстом, нужно пройтись в нем функцией preg_replace_callback, найти ссылки, проверить наличие указанных файлов, если нет, ссылка выбрасывается (или выдается ошибка клиенту, или клиент посылается на..., или др. варианты), если есть, значит получаем размер файла, можно и дату последнего обновления, и эту информацию добавляем в ссылку в тег title. Что не понятного? Или вы друзья так и будет маяться "дурью", дергая сервер не понятно ради чего? :) |
При скачивании по прямой ссылке, размер и так указывается, а если отдается скриптом, то его нужно указывать. Проблемы в этом нет никакой.
Другое дело, чтобы извещать пользователя до того как он будет скачивать файл. Да и вообще, по большому счету это не JS тема, а иного раздела. |
Цитата:
Цитата:
|
Цитата:
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
От того, что кто-то, когда-то написал хтмл ну никак не влияет на то, что кто-то потом будет менять другие файлы, ссылки на которых уже не меняются... Т.ч. чуши пока не вижу. :D |
Цитата:
Цитата:
Ребята, либо вы не представляете какие задачи возлагаются на сервер и поэтому пытаетесь перекладывать серверные проблемы на клиента, либо представляете и просто маетесь тем, о чем я говорил ранее. :) |
Часовой пояс GMT +3, время: 16:03. |