IMHO.WS

IMHO.WS (https://www.imho.ws/index.php)
-   Веб-программирование (https://www.imho.ws/forumdisplay.php?f=29)
-   -   Показывать картинку по маске если она на сервере (https://www.imho.ws/showthread.php?t=134448)

Rayzak 15.08.2008 22:27

Показывать картинку по маске если она на сервере
 
Привет всем.
В asp не бум-бум :) По этому хочу спросить о помощи.

У меня все картинки имеют название PRODUCTCODE.jpg
Т.е. все продукты имеют свой внутренний код и этот код соответствует главной картинке.
Пример:
Если код продукта ABC123, то на вебсайте главная картинка будет называется ABC123.jpg
Вот так на странице продукта выводиться этот код:
Код:

<%=server.htmlencode(sItemCode)%>
У меня вопрос
У меня на каждый продукт больше одной картинки. И если главная будет называться ABC123.jpg то остальные названы по типу ABC123_пояснение_картинки.jpg
Пример:
ABC123.jpg- главная
ABC123_BOX.jpg - картинка коробки
ABC123_PN.jpg - картинка парт номера
ABC123_LABEL.jpg - картинка этикетки
И так далее.
Мой сайт выводит только главную картинку, а остальные к сожалению нет.

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

путь к фолдеру с картинками
Код:

<%=sImgLink%>
Прошу помощи :beer:

Hubbitus 19.08.2008 13:37

Так а в чем проблема-то?
Надо так формировать путьк к изображению, так и формируйте его. Например:
Код:

<%=sImgLink & "/" & server.htmlencode(sItemCode) & "_BOX.jpg"  %>

EvroStandart 19.08.2008 14:24

Ему вроде нужна проверка на наличие в директории.

Rayzak 19.08.2008 17:22

Да, некоторые продукты имеют одну картинку, а некоторые имеют 10.
Если никто не знает как сделать проверку в директории, может быть посоветуете как сделать обращение по типу

Поста #2 но с проверкой- если такой картинки нет, то не показывать пустой квадратик.

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

Rayzak 20.08.2008 22:13

Ребят, кто в asp понимает, подсобите.

Вот код который будет показывать ОДНУ картинку по маске, если она существует.

Код:

<%
Dim FileName

FileName = server.htmlencode(sItemCode) & "_ACCESSORIES.jpg"
FileName = Server.MapPath("mmHM/images/" & FileName)

If IsFileExists(FileName) = True  Then
 Response.Write "<a target=_blank href=mmHM/images/" & server.htmlencode(sItemCode) & "_ACCESSORIES.jpg><img border=0 width=50 height=50 src=mmHM/images/" & server.htmlencode(sItemCode) & "_ACCESSORIES.jpg>&nbsp;&nbsp;"
Else
 Response.Write ""
End If

Function IsFileExists(byVal FileName)
 
 If FileName = ""  Then
  IsFileExists = False
  Exit Function
 End If
 
 Dim objFSO
   
 Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
   
 If (objFSO.FileExists( FileName ) = True)  Then
  IsFileExists = True
 Else
  IsFileExists = False
 End If
 
 Set objFSO = Nothing 
End Function
%>

Вот перечень окончаний названий файлов которые могут быть.

Код:

_ACCESSORIES
_ACCESSORIES1
_ACCESSORIES2
_BACK VIEW
_BOTTOMVIEW
_BOX
_BOX_OPENED
_BOXLABEL
_FRONT_VIEW
_LABEL
_LABEL1
_PACKAGING
_PACKAGING1
_PN
_REARVIEW
_TOP VIEW

Как преобразовать вышепреведенный код в array всех имен файлов, заместо проверки только одного файла?

EvroStandart 21.08.2008 14:43

Какая хоть версия asp?

Здаётся мне что это дотнет. И код написан на бейсике. :)

Rayzak 28.08.2008 19:25

Сайт на asp, дотнет тоже стоит.

Что, нет никого кто зает как создать плоский array который создается из перечислкных значений? Должно быть очень просто! На php знаю как сделать, а вот asp похоже придется учить...

EvroStandart 29.08.2008 10:35

Цитата:

Сообщение от EvroStandart (Сообщение 1583023)
Какая версия?

Цитата:

Сообщение от Rayzak (Сообщение 1584786)
Сайт на asp

Точный ответ, строго по вопросу :biggrin:


Цитата:

Сообщение от Rayzak (Сообщение 1584786)
Что, нет никого кто зает как создать плоский array

Ты не поверишь, гугл знает!
http://www.google.ee/search?hl=et&q=...&btnG=Otsi&lr=

Rayzak 29.08.2008 22:39

Цитата:

Сообщение от EvroStandart (Сообщение 1584920)
Точный ответ, строго по вопросу

Я вижу ты сам по теме не понимаешь. asp уже много лет (года с 2000 или 2001) одна версия - 3, версии ниже идут по дефу. ASP входит в стандартный пакет w2k3. А вот asp.net есть версия 1 и 2. Так вот, у меня на сервере стоят все три версии. Я думаю этот ответ тебя удовлетворит? И наверняка он разъяснит тебе множество вещей и у тебя сразу будет ответ...
А meanwhile, прочитай правила раздела, про безполезные посты.

Я буду премного благодарен если бы модератор вычистил пустые и useless комменты пользователя EvroStandart.

Rayzak 05.09.2008 02:15

В общем открыл asp доки и почитал про arrays, в принципе почти тоже самое что и php синтаксис.

Кому интерестно - ищет картинку по маске, маска лежит array и если картинка на сервере- показывает.
Код:

<%
Dim AdditionalImagesArray
AdditionalImagesArray = Array("BOX","PALLET","ACC","ACCESSORIES","ACCESSORIES1","ACCESSORIES2","BACK","BACK VIEW","BOTTOM","BOTTOMVIEW","BOX_CLOSED","BOX_OPEN","BOX_OPENED","BOXLABEL","CHIP","FRONT","FRONT VIEW","FRONT_VIEW","FRONTVIEW","INSIDE","LABEL","LABEL1","LABEL2","LABEL3","LABEL4","LABEL5","OPENBOX","PACKAGING","PACKAGING1","PACKAGING2","PART","PN","PN1","PN2","PN3","PN4","PN5","REAR","REARVIEW","RETAILBOX","SERIAL","SIDEVIEW","TOP","TOP VIEW","TOP_VIEW","TOPVIEW")
For i=0 to 45
Dim AdditionalImages
AdditionalImages = Server.MapPath("mmHM/images/" & ItemcodeNew & "_" & server.htmlencode(sItemCode)& AdditionalImagesArray(i) & ".jpg")
If IsFileExists(AdditionalImages) = True  Then
 Response.Write "<a target=_blank href=mmHM/images/" & ItemcodeNew & "_" & server.htmlencode(sItemCode)& AdditionalImagesArray(i) & ".jpg><img border=0 width=50 height=50 src=/mmHM/images/MBIN010L"& ItemcodeNew & "_" & server.htmlencode(sItemCode)& AdditionalImagesArray(i) & ".jpg></a> "
Else
 Response.Write ""
End If

next


Function IsFileExists(byVal AdditionalImages)
 
 If AdditionalImages = ""  Then
  IsFileExists = False
  Exit Function
 End If
 
 Dim objFSO
   
 Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
   
 If (objFSO.FileExists( AdditionalImages ) = True)  Then
  IsFileExists = True
 Else
  IsFileExists = False
 End If
 
 Set objFSO = Nothing 
End Function

%>


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

Ale 30.09.2008 14:59

Я в asp нибум, а насчет несуществующих картинок - в папки с графикой для каталогов завсегда кладу прозрачный gif 1x1 пиксел и htaccess с такими примерно строками:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+) spacer.gif

Соотв если прописанной твоим кодом в хтмл картинки реально в папке нету, вместо нее будет отображаться прозрачная точка (spacer.gif). Ессесно это прокатит если дизайн страницы позволяет, если нет - тада функция, на asp не подскажу


Часовой пояс GMT +4, время: 16:16.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.