권장 : ASP는 원격 파일을 로컬에 저장합니다 % 기능 SaveremoteFile (LocalFileName, OmertionFileUrl) SaveremoteFile = True Dim Ads, 검색, GetRemotedata Set Retrieval = Server.CreateObject (Microsoft.xmlhttp). OPEN GET, OrmetFileUrl, False ,,. Saa SaaTpverEmote.
인터넷에서 썸네일을 생성하는 많은 ASP 구성 요소가 있습니다. 가상 공간이 새로운 구성 요소 등록을 지원하지 않으면 웹 사이트가 색상을 잃어버린 것으로 생각할 수 있습니다. Xinqing은 재능이 없으며 온라인 리소스와 결합하여 참조를 위해 구성 요소가없는 썸네일 프로그램을 작성했습니다.
먼저 기본 사항을 살펴 보겠습니다. 우선, 다음 코드가 페이지에 표시되어 있음을 알고 있습니다.
<img src = pic.gif 테두리 = 0 너비 = 300 높이 = 260>
SRC는 이미지 경로이며, 테두리는 이미지의 가장자리 너비, 너비는 이미지의 길이이며 높이는 이미지의 높이입니다. 썸네일의 생성은 실제로 원래 크기로 확장됩니다. 그러나 일반적으로 왜곡을 최소화하기 위해서는 확장으로 확장 할 것입니다. 따라서 그림의 길이와 너비를 얻는 것은 썸네일을 생성하는 데 초점이됩니다.
구성 요소가없는 썸네일 생성을 작성하는 단계는 다음과 같습니다.
1. 구성 요소없이 이미지 크기를 가져옵니다
ASP를 처음 배웠을 때 구성 요소없이 이미지 크기를 얻기 위해 ASCII 코드를 사용하여 기사를 보았습니다. 나중에 나는 그것을 시도하고 JPG와 같은 이미지의 크기를 얻었을 때 온라인에서 그것을 확인하고 많은 웹 사이트 가이 프로그램을 다시 인쇄한다는 것을 알았지 만 그중 어느 누구도이 프로그램의 결함을 지적하지 않았지만 결함에 대한 해결책은 물론이 프로그램의 결함을 지적하지 않았습니다. 나중에 나는 Googleg를 가서 마침내 이미지 크기를 얻기 위해 adodb.stream의 사용을 소개하는 기사를 찾았습니다. 소개 된 방법에 따라 내부 코드를 수정하여 시도했습니다. 효과는 정말 좋습니다. 이제 나는 그것을 꺼내서 당신과 공유 할 것입니다.
adodb.stream을 사용하여 이미지 크기에 대한 일반 클래스를 얻으십시오.
<%
'////////////// GPS : 사진 크기 받기 /////////////
'/////////////////////////////
'////////// Leon (Xinqing)에 의해 인용 (2005 년 8 월 11 일 //////////////////////////////////////////////4)
클래스 GPS
희미한 ASO
private sub class_initialize
set aso = createobject (adodb.stream)
aso.mode = 3
aso.type = 1
ASO. OPEN
종료 서브
개인 sub class_terminate
ASO = 아무것도 설정하지 않습니다
종료 서브
개인 기능 Bin2str (빈)
Dim I, Str
i = 1에서 lenb (bin)의 경우
clow = midb (bin, i, 1)
ASCB (Clow) <128 인 경우
str = str & chr (ASCB (clow))
또 다른
i = i+1
i <= lenb (bin)이면 str = str & chr (ascw (midb (bin, i, 1) & clow))
끝 If
다음
bin2str = str
엔드 기능
개인 기능 Num2str (Num, Base, Lens)
'GPS (2005-8-11)
딤토
ret =
while (num> = base)
ret = (num mod base) & ret
num = (num -num mod base)/base
향하게 하다
num2str = right (문자열 (렌즈, 0) 및 Num & ret, 렌즈)
엔드 기능
개인 기능 str2num (str, base)
'GPS (2005-8-11)
딤토
ret = 0
i = 1 to len (str)의 경우
ret = ret *base + cint (mid (str, i, 1))
다음
str2num = ret
엔드 기능
개인 기능 binval (bin)
'GPS (2002-8-11)
딤토
ret = 0
i = lenb (빈)에서 1 단계 -1
ret = ret *256 + ASCB (Midb (bin, i, 1))
다음
binval = ret
엔드 기능
개인 기능 binval2 (bin)
'GPS (2002-8-11)
딤토
ret = 0
i = 1에서 lenb (bin)의 경우
ret = ret *256 + ASCB (Midb (bin, i, 1))
다음
binval2 = ret
엔드 기능
'/// 다음은 호출 코드입니다 ///
함수 getImagesize (filespec)
'GPS (2002-8-11)
Dim Ret (3)
aso.loadfromfile (filespec)
bflag = aso.read (3)
Case Hex (Binval (bflag)) 선택
사례 4E5089 :
aso.read (15)
ret (0) = png
ret (1) = binval2 (aso.read (2))
aso.read (2)
ret (2) = binval2 (aso.read (2))
사례 464947 :
aso.read (3)
ret (0) = gif
ret (1) = binval (aso.read (2))
ret (2) = binval (aso.read (2))
사례 535746 :
aso.read (5)
bindata = aso.read (1)
sconv = num2str (ASCB (bindata), 2,8)
nbits = str2num (왼쪽 (sconv, 5), 2)
sconv = mid (sconv, 6)
while (len (sconv) <nbits*4)
bindata = aso.read (1)
sconv = sconv & num2str (ASCB (bindata), 2,8)
향하게 하다
ret (0) = swf
ret (1) = int (abs (str2num (sconv, 1*nbits+1, nbits), 2) -Str2num (MID (SCONV, 0*nbits+1, nbits), 2)/20)
ret (2) = int (abs (str2num (sconv, 3*nbits+1, nbits), 2) -Str2num (MID (SCONV, 2*nbits+1, nbits), 2)/20)
사례 ffd8ff :
하다
do : p1 = binval (aso.Read (1)) : 루프는 aso.eos가 아닌 p1 = 255입니다
P1> 191 및 P1 <196 인 경우 종료 aso.read (binval2 (aso.read (2)) -2)
do : p1 = binval (aso.read (1)) : 루프는 aso.eos가 아닌 p1 <255입니다
사실이지만 루프
aso.read (3)
ret (0) = jpg
ret (2) = binval2 (aso.read (2))
ret (1) = binval2 (aso.read (2))
다른 경우 :
왼쪽 (bin2str (bflag), 2) = bm이면
aso.read (15)
ret (0) = bmp
ret (1) = binval (aso.read (4))
ret (2) = binval (aso.read (4))
또 다른
ret (0) =
끝 If
종료 선택
ret (3) = 너비 = & ret (1) & height =
& ret (2) &
getImagesize = ret
엔드 기능
수업 종료
%>
위의 코드를 복사하여 GPS.ASP 파일을 생성하여 이미지 크기를 얻을 수있는 구성 요소가없는 일반 클래스가 정상입니다.
2. 이미지 경로를 얻으십시오
하나 이상의 그림과 그림을 분류 된 방식으로 저장해야하므로 데이터베이스에 그림의 상대 경로를 저장하는 필드 imgurl을 설계했습니다. 업로드 된 모든 이미지를 이미지라는 폴더에 넣었습니다 (구성 요소없이 이미지를 업로드하는 방법은 많이 말하지 않습니다). 이제 showimg.asp 페이지를 디자인하여 썸네일 및 관련 정보를 표시하겠습니다. 특정 디자인은 다음과 같습니다.
그림:
이미지 형식 :
이미지 크기 :
이미지 크기 :
클릭 수 :
아래에서는 이미지의 절대적인 경로를 얻습니다. 코드는 다음과 같습니다.
<%
'///// showimg.asp ////의 절대 경로를 얻으십시오.
희미한 카파일
curfile = server.mappath (request.servervaribles (path_info))
Dim Curfilename, Filename
'//// 이미지의 상대 경로 (데이터베이스에 저장)
cufilename = rs (imgurl)
'///// showimg.asp는 이미지와 동일한 디렉토리에 있기 때문에 instrev를 사용하여 이미지의 경로를 얻습니다. ////
filename = 왼쪽 (Curfile, Instrev (curfile,)) & cufilename
'//// 생성 GPS 엔티티 ////
희미한 getpicsize
GetPicsize = 새로운 GPS를 설정합니다
set fs = server.createobject (scripting.filesystemobject)
'//// 이미지 유형 얻기 /////
Dim PicsuffixName
picsuffixname = fs.getextensionName (filename)
DIM PD '// 그림 치수
희미한 pwidth, Pheight
Case PicsuffixName을 선택하십시오
Case GIF, BMP, JPG, PNG :
'///// 이미지 크기를 얻으려면 GPS 일반 클래스에서 getImagesize 기능을 호출하십시오 /////
pd = getPicsize.getImagesize (filename)
pwidth = pd (1) '// 그림 너비를 얻습니다
Pheight = PD (2) '// 이미지 높이를 얻습니다
케이스 SWF
pd = getPicsize.getImagesize (filename)
pwidth = pd (1) '// 플래시 너비를 얻습니다
Pheight = PD (2) '// 플래시 높이를 얻습니다
다른 경우
종료 선택
fs = 아무것도 설정하지 않습니다
GetPicsize = 아무것도 설정하지 않습니다
%>
위의 코드를 <body>에 복사해도됩니다!
물론 어떤 사람들은 Path_info를 사용할 필요가 없다고 말할 수 있습니다. server.mappath ()를 직접 사용할 수 있습니다. 하하, 모두 자신의 선호도가 있습니다. 주된 이유는 PATH_INFO를 사용하여 FSO의 일부 기능을 구현할 수 있지만 Server.Mappath ()로 수행하지 않았으므로 사용하고 있습니다.
3. 썸네일 크기를 정의하십시오
코드 의이 부분은 자신의 의견과 다릅니다. 우선, 우리는 썸네일 디스플레이의 크기 범위를 지정해야합니다. 예 : 300x260, 코드는 다음과 같이 작성할 수 있습니다.
<%
희미한 pxwidth, pxheight
Dim PP '// 비율
pwidth = 0 또는 pwidth =이면
pxwidth = 0
pxheight = 0
또 다른
pp = formatnumber (pwidth/pheight, 2) '// add-width 비율
끝 If
pwidth> = Pheight라면
pwidth> = 300 인 경우
pxwidth = 300
pxheight = FormatNumber (300/pp, 0)
또 다른
pxwidth = pwidth
pxheight = Pheight
끝 If
또 다른
Pheight> = 260이면
pxheight = 260
pxwidth = formatnumber (260*pp, 0)
또 다른
pxwidth = pwidth
pxheight = Pheight
끝 If
끝 If
%>
두 번째 단계 직후 위의 코드를 작성하십시오. 호출시 코드는 다음과 같습니다.
<img src = <%= curfilename%> border = 0 너비 = <%= pxwidth%>
높이 = <%= pxheight%>>
이미지 형식은 이미지 크기를 다음과 같이 작성할 수 있습니다.
<%
응답. pxwidth & x & pxheight를 작성하십시오
%>
이미지 크기는 fso.getfilesize (filename)를 사용하여 달성 할 수 있지만, 클릭 수는 SQL 문을 사용하여 간단히 달성 할 수 있으므로 특정 인코딩을 더 이상 설명하지 않습니다.
이러한 방식으로 구성 요소가없는 썸네일 프로그램이 작성되며, 이는 약간 현명 할 수 있지만 방법을 마스터 할 수있는 한 크게 향상됩니다.
공유 : ASP 구성 요소가없는 실제 진행률 표시 줄을 사용하여 업로드하십시오 upload.asp가 핵심 코드 인 실제 진행률 표시 줄이없는 구성 요소가없는 실제 진행률 표시 줄로 ASP 구성 요소가없는 업로드. 특별한 요구가 필요하지 않는 한 Demo.htm은 새로 고침 진행률 바 (IE5.5+ 지원)가없는 데모입니다. demo.asp는 demo.asp에 의해 업로드 된 파일입니다. 데모에는 필요하기 때문에 Demo.asp에만 업로드되어 저장되지 않습니다. 저장 해야하는 경우 관련성 만 제거하면됩니다.