Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Получение размера и типа файла с сервера (https://javascript.ru/forum/jquery/56569-poluchenie-razmera-i-tipa-fajjla-s-servera.html)

casper-man 25.06.2015 16:10

Цитата:

Сообщение от ksa (Сообщение 376564)
Ну это кагбэ его основная работа... :D
Ранее ты писал о статичных страницах с сылками на документы... Теперь у тебя фигурируют какие-то "TEXTAREA". :blink:

Сайт на UCOZ, там есть стат.страници которые можно редактировать только встроенным редактором. и HTML код в TEXTAREA.
Цитата:

Сообщение от ksa (Сообщение 376564)
Для статичных страниц, дабы никого (кроме сервера на напрягать), я цеплял бы к ним скрипт, который:
- пройдет по ссылкам
- соберет имена файлов с их путями
- запросит сервер по их размерам
- преобразует ссылки к нужному виду

Т.о. никто из участников даже не заметит "усложнений" в своей работе.

Всё именно так и задумывалось)))...

Возвращаясь к первоначальной идее я столкнулся с проблемой что размер я получаю, если файл на том-же серваке что и страница со скриптом, но к ссылке прикрутить не получается...

если я не совсем ясно объяснил, то вот страница примера

такой код
<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");
});

laimas 25.06.2015 17:21

Цитата:

Сообщение от ksa
Что предлагал laimas, только наверное сам laimas и поймет...

Я вот не пойму и тебя...
Ранее ты писал о статичных страницах с сылками на документы... Теперь у тебя фигурируют какие-то "TEXTAREA".

Для статичных страниц, дабы никого (кроме сервера на напрягать), я цеплял бы к ним скрипт, который:
- пройдет по ссылкам
- соберет имена файлов с их путями
- запросит сервер по их размерам
- преобразует ссылки к нужному виду

Т.о. никто из участников даже не заметит "усложнений" в своей работе.

Тогда для обоих: :)

Если в форме разрешено добавление ссылок типа "а-ля <a href=...>", то это плохо. Если разрешена вставка ссылок посредством BB-тегов, это нормально. Хотя небо не упадет если и непосредственно теги разрешены, вот только работы серверу по приему формы будет невпроворот. Так или иначе, принимая форму с текстом, нужно пройтись в нем функцией preg_replace_callback, найти ссылки, проверить наличие указанных файлов, если нет, ссылка выбрасывается (или выдается ошибка клиенту, или клиент посылается на..., или др. варианты), если есть, значит получаем размер файла, можно и дату последнего обновления, и эту информацию добавляем в ссылку в тег title.

Что не понятного? Или вы друзья так и будет маяться "дурью", дергая сервер не понятно ради чего? :)

laimas 25.06.2015 20:45

При скачивании по прямой ссылке, размер и так указывается, а если отдается скриптом, то его нужно указывать. Проблемы в этом нет никакой.
Другое дело, чтобы извещать пользователя до того как он будет скачивать файл. Да и вообще, по большому счету это не JS тема, а иного раздела.

casper-man 25.06.2015 22:16

Цитата:

Сообщение от Rise (Сообщение 376584)
laimas, там такая штука есть $FILE_SIZE$ но ТС это неведомо :D

Цитата:

Сообщение от Rise (Сообщение 376583)
casper-man, здесь посмотри как в кнопках это реализовано.

Если бы речь шла о каталоге файлов уж я надеюсь мне хватило бы ума воспользоваться стандартной хренью UCOZ'а $FILE_SIZE$... но речь идёт о модуле "страницы сайта", а тут такой приблуды нет...

ksa 26.06.2015 08:28

Цитата:

Сообщение от laimas
Так или иначе, принимая форму с текстом, нужно пройтись в нем функцией preg_replace_callback, найти ссылки, проверить наличие указанных файлов, если нет, ссылка выбрасывается (или выдается ошибка клиенту, или клиент посылается на..., или др. варианты), если есть, значит получаем размер файла, можно и дату последнего обновления, и эту информацию добавляем в ссылку в тег title.

Твоя идея потерпит крах. Потому как файлы в ссылках обновляются. :) И , записанная тобой информация, не будет отображать реальное состояние.
Цитата:

Сообщение от laimas
Или вы друзья так и будет маяться "дурью", дергая сервер не понятно ради чего?

Ради получения достоверной информации. :D

ksa 26.06.2015 08:31

Цитата:

Сообщение от casper-man
такой код
<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>

Что ты хочешь получить в итоге? Так же приведи пример хтмля...

laimas 26.06.2015 09:07

Цитата:

Сообщение от ksa
Твоя идея потерпит крах. Потому как файлы в ссылках обновляются. И , записанная тобой информация, не будет отображать реальное состояние.

Вот только не надо чушь пороть :) Сервер и только он принимает и файлы, и тексты со ссылками.

ksa 26.06.2015 14:47

Цитата:

Сообщение от laimas
Сервер и только он принимает и файлы, и тексты со ссылками.

В исходной задаче есть статичные хтмл страницы и какие-то файлы... Все они живут своей жизнью...
От того, что кто-то, когда-то написал хтмл ну никак не влияет на то, что кто-то потом будет менять другие файлы, ссылки на которых уже не меняются...

Т.ч. чуши пока не вижу. :D

laimas 26.06.2015 15:34

Цитата:

Сообщение от ksa
В исходной задаче есть статичные хтмл страницы и какие-то файлы...

Статический, не означает "бесхозный" появляющийся не известно по какой причине на сервере.

Цитата:

Сообщение от ksa
Все они живут своей жизнью...

Такое возможно только тогда, когда весь сервер живет своей жизнью, чего не должно быть.

Ребята, либо вы не представляете какие задачи возлагаются на сервер и поэтому пытаетесь перекладывать серверные проблемы на клиента, либо представляете и просто маетесь тем, о чем я говорил ранее. :)


Часовой пояс GMT +3, время: 12:41.