<!-- #include file="./include.asp" --> <% main() Sub main() If Not(InternetCheck()) Then Exit Sub End If ' If Not(VisitorCheck()) Then ' Exit Sub ' End If If Not(ShopAdminCheck()) Then Exit Sub End If 'Response.Write(GB_ShopAdmin) 'Exit Sub Dim Query Dim Content Dim Content2 '画像ファイルの最大サイズ Dim MaxFileSize MaxFileSize = 512 'KByte '画像フォルダ作成 Dim fso Set fso = Server.CreateObject("Scripting.FileSystemObject") Dim ImageFolder ImageFolder = "" & HomeAliasSL & ItemFolderSL If Not(fso.FolderExists(Server.MapPath(ImageFolder))) Then fso.CreateFolder(Server.MapPath(ImageFolder)) End If ImageFolder = ImageFolder & GB_ShopAdmin & "/" If Not(fso.FolderExists(Server.MapPath(ImageFolder))) Then fso.CreateFolder(Server.MapPath(ImageFolder)) End If Dim BASPObj Dim Bytes, BinData, FileName(3), FileSize, l1 Bytes = Request.TotalBytes On Error Resume Next Err.Clear() BinData = Request.BinaryRead(Bytes) If Err.Description <> "" Then 'こちらはIISによる制限 Response.Write("エラーが発生しました。<br>ファイルサイズが大きすぎる可能性があります。<br><br>") Response.Write("エラーコード:") Response.Write(Err.Description) Response.Write("<br><br>") Response.Write("<a href=""JavaScript:history.go(-1)"">戻る</a>") Exit Sub End If On Error Goto 0 Set BASPObj = Server.CreateObject("basp21") Dim Item Item = BASPObj.Form(BinData, "Item") Dim Order Order = BASPObj.Form(BinData, "Order") Dim Kaihatsu Kaihatsu = BASPObj.Form(BinData, "Kaihatsu") Dim Cat Cat = BASPObj.Form(BinData, "Cat") Dim SubCat SubCat = BASPObj.Form(BinData, "SubCat") Dim Area Area = BASPObj.Form(BinData, "Area") If Area = "" Then Area = "0" End If Dim Pref Pref = BASPObj.Form(BinData, "Pref") If Pref = "" Then Pref = "0" End If Dim Meisho Meisho = ConvProhiStr(BASPObj.Form(BinData, "Meisho")) Dim Kakaku Kakaku = BASPObj.Form(BinData, "Kakaku") Dim ShohiZei ShohiZei = BASPObj.Form(BinData, "ShohiZei") Dim Hozon Hozon = BASPObj.Form(BinData, "Hozon") Dim HozonTemp HozonTemp = BASPObj.Form(BinData, "HozonTemp") Dim Osusume Osusume = BASPObj.Form(BinData, "Osusume") Dim OrderMax OrderMax = BASPObj.Form(BinData, "OrderMax") Dim Shokai Shokai = Replace(ConvProhiStr(BASPObj.Form(BinData, "Shokai")), vbCrLf, "<br>") Dim Biko Biko = Replace(ConvProhiStr(BASPObj.Form(BinData, "Biko")), vbCrLf, "<br>") Dim NoCart NoCart = BASPObj.Form(BinData, "NoCart") Dim NoCartURL NoCartURL = BASPObj.Form(BinData, "NoCartURL") Dim Publish Publish = BASPObj.Form(BinData, "Publish") Dim Publishing Publishing = BASPObj.Form(BinData, "Publishing") Dim MotoImageFile(3) MotoImageFile(1) = BASPObj.Form(BinData, "MotoImageFile1") MotoImageFile(2) = BASPObj.Form(BinData, "MotoImageFile2") MotoImageFile(3) = BASPObj.Form(BinData, "MotoImageFile3") Dim ImageFileListView ImageFileListView = BASPObj.Form(BinData, "ImageFileListView") Dim ImageDelete(3) ImageDelete(1) = BASPObj.Form(BinData, "ImageDelete1") ImageDelete(2) = BASPObj.Form(BinData, "ImageDelete2") ImageDelete(3) = BASPObj.Form(BinData, "ImageDelete3") If ImageDelete(1) = "1" And ImageFileListView = "1" Or ImageDelete(2) = "1" And ImageFileListView = "2" Or ImageDelete(3) = "1" And ImageFileListView = "3" Then ImageFileListView = "" '未設定に戻す(表示側で自動選択させる) End If Dim Delete Delete = BASPObj.Form(BinData, "Delete") Dim ActShopID ActShopID = BASPObj.Form(BinData, "ActShopID") If LCase(ActShopID) <> LCase(GB_ShopAdmin) Then Response.Write("別のウィンドウまたは別のタブページで現在と異なるIDでログインしました。<br>" & vbCrLf) Response.Write("同一PC上で複数のIDでログインすることはできません。<br>" & vbCrLf) Response.Write("<br>" & vbCrLf) Response.Write("<a href=""shopadminmenu.asp"">戻る</a>" & vbCrLf) Exit Sub End If '削除 If Delete <> "" Then Query = " DELETE FROM TF商品 WHERE ショップID = " & GB_ShopAdmin & " AND 商品ID = " & Delete & " " Set Content = SQLQuery(Query, SQLServer, DatabaseName, DatabaseUser, DatabasePass) On Error Resume Next '画像の削除 Call fso.DeleteFile(Server.MapPath(ImageFolder) & "\" & Delete & "-*.*", True) '商品ID-枝番 Call fso.DeleteFile(Server.MapPath(ImageFolder) & "\" & Delete & ".*", True) '商品IDのみ(旧仕様) On Error Goto 0 Response.Redirect(HomeAliasSL & "shopshelf.asp?Order=" & Order & "&ActShopID=" & ActShopID) '商品一覧に戻る End If Dim ItemReturn ItemReturn = True '商品詳細に戻るフラグ Dim ImageCnt '元画像を退避(コピー)※ソース画像のみ For ImageCnt = 1 To 3 If MotoImageFile(ImageCnt) <> "" Then On Error Resume Next Call fso.CopyFile(Server.MapPath(ImageFolder) & "\" & MotoImageFile(ImageCnt), Server.MapPath(ImageFolder) & "\Temp" & ImageCnt & ".img", True) On Error Goto 0 End If Next If Item <> "" Then '商品画像トグル用 Dim ActFileNum(3) ActFileNum(1) = "" ActFileNum(2) = "" ActFileNum(3) = "" If Not(IsNumeric(Item)) Then '新規採番 Item = 0 Set Content = QueryGetItemAdmin(GB_ShopAdmin, "", "", "", Order, SQLServer, DatabaseName, DatabaseUser, DatabasePass) Do While Not(Content.BOF Or Content.EOF) If Content.Fields("商品ID") > Item Then Item = Content.Fields("商品ID") End If Content.MoveNext Loop Item = "" & (Item + 1) Else '商品画像トグル用 Set Content = QueryGetItemAdmin(GB_ShopAdmin, Item, "", "", Order, SQLServer, DatabaseName, DatabaseUser, DatabasePass) If Not(Content.BOF Or Content.EOF) Then ActFileNum(1) = "" & Content.Fields("商品画像トグル1") ActFileNum(2) = "" & Content.Fields("商品画像トグル2") ActFileNum(3) = "" & Content.Fields("商品画像トグル3") End If End If '画像フォルダ作成(商品IDをファイル名にするため商品IDフォルダは不要) 'ImageFolder = ImageFolder & Item & "/" 'Response.Write(ImageFolder) 'Exit Sub 'If Not(fso.FolderExists(Server.MapPath(ImageFolder))) Then ' fso.CreateFolder(Server.MapPath(ImageFolder)) 'End If Dim FileExt Dim NewOutFile Dim TmpOutFile For ImageCnt = 1 To 3 FileSize = BASPObj.FormFileSize(BinData, "ImageFile" & ImageCnt) If ImageDelete(ImageCnt) = "1" Then FileName(ImageCnt) = "" On Error Resume Next '画像の削除 Call fso.DeleteFile(Server.MapPath(ImageFolder) & "\" & Item & "-" & ImageCnt & "*.*", True) '商品ID-枝番 On Error Goto 0 MotoImageFile(ImageCnt) = "" ElseIf FileSize > 0 Then On Error Resume Next Call fso.DeleteFile(Server.MapPath(ImageFolder) & "\" & Item & "-" & ImageCnt & ".*", True) '同一商品IDのファイルを全削除 On Error Goto 0 FileName(ImageCnt) = BASPObj.FormFileName(BinData,"ImageFile" & ImageCnt) FileName(ImageCnt) = Mid(FileName(ImageCnt), InStrRev(FileName(ImageCnt), "\") + 1) 'パスからファイル名を取り出す FileExt = Mid(FileName(ImageCnt), InStrRev(FileName(ImageCnt), ".") + 1) 'ファイル名から拡張子を取り出す FileName(ImageCnt) = Item & "-" & ImageCnt & "." & FileExt 'ファイル名を「商品ID-枝番.拡張子」に変換 l1 = BASPObj.FormSaveAs(BinData, "ImageFile" & ImageCnt, Server.MapPath(ImageFolder) & "\" & FileName(ImageCnt)) 'Response.Write(Server.MapPath(ImageFolder) & "\" & FileName(ImageCnt)) 'Exit Sub '画像処理 Dim Result '画像サイズを変更 Dim ImgWidth Dim ImgHeight Dim Hiritsu '画像サイズを取得 If LCase(Right(FileName(ImageCnt), 4)) = ".gif" Then 'GIFのみLeadToolsではライセンスの関係で処理出来ないのでDoodle2コンポーネントを利用 Result = DdleObj.LoadFromFile(Server.MapPath(ImageFolder) & "\" & FileName(ImageCnt)) If Result = 0 Then ImgWidth = DdleObj.Width ImgHeight = DdleObj.Height End If Else Result = LeadObj.Load(Server.MapPath(ImageFolder) & "\" & FileName(ImageCnt), 0, 0, 1) If Result = 0 Then ImgWidth = LeadObj.BitmapWidth ImgHeight = LeadObj.BitmapHeight End If End If If ImgWidth > 600 Or ImgHeight > 600 Then '600x600に対して画像の縦横比のいずれか広い側の比率を取得する If ImgWidth / ImgHeight > 600 / 600 Then Hiritsu = ImgWidth / 600 '600x600に対して画像の縦横比の横が広い場合 Else Hiritsu = ImgHeight / 600 '600x600に対して画像の縦横比の縦が広い場合 End If '比率から内接サイズを計算しグローバル変数に代入(小数点以下四捨五入) InscribedWidth = Fix((ImgWidth / Hiritsu) + 0.5) InscribedHeight = Fix((ImgHeight / Hiritsu) + 0.5) 'サイズを600x600に収まるよう縮小 If LCase(Right(FileName(ImageCnt), 4)) = ".gif" Then 'GIFのみLeadToolsではライセンスの関係で処理出来ないのでDoodle2コンポーネントを利用 'サイズ変更 Result = DdleObj.Stretch(InscribedWidth, InscribedHeight, True, True) '第4引数はFalseで内接リサイズだが余白が生じるだけなのでダメ If Result = 0 Then '画像を保存 Result = DdleObj.SaveToFile(Server.MapPath(ImageFolder) & "\" & FileName(ImageCnt)) End If Else 'サイズ変更 Result = LeadObj.Size(InscribedWidth, InscribedHeight, 4) If Result = 0 Then '全てJPEGで保存(強制) Dim NewFileName NewFileName = Left(FileName(ImageCnt), Len(FileName(ImageCnt)) - 4) & ".jpg" Result = LeadObj.Save(Server.MapPath(ImageFolder) & "\" & NewFileName, 10, 24, 24, 0) '第4引数が圧縮率 '元がJPEG以外なら元ファイルを削除 If Result = 0 And LCase(Right(FileName(ImageCnt), 4)) <> ".jpg" Then 'Response.Write("保存成功") 'Exit Sub On Error Resume Next '元ファイルを削除 Call fso.DeleteFile(Server.MapPath(ImageFolder) & "\" & FileName(ImageCnt), True) On Error Goto 0 FileName(ImageCnt) = NewFileName End If End If End If End If 'ビットマップはJPEG変換 ' If LCase(Right(FileName(ImageCnt), 4)) = ".bmp" Or LCase(Right(FileName(ImageCnt), 4)) = ".png" Then ' Result = LeadObj.Load(Server.MapPath(ImageFolder) & "\" & FileName(ImageCnt), 0, 0, 1) ' If Result = 0 Then ' Dim NewFileName ' NewFileName = Left(FileName(ImageCnt), Len(FileName(ImageCnt)) - 4) & ".jpg" ' Result = LeadObj.Save(Server.MapPath(ImageFolder) & "\" & NewFileName, 10, 24, 24, 0) '第4引数が圧縮率 ' If Result = 0 Then ' On Error Resume Next ' Call fso.DeleteFile(Server.MapPath(ImageFolder) & "\" & FileName(ImageCnt), True) ' On Error Goto 0 ' FileName(ImageCnt) = NewFileName ' End If ' End If ' End If 'ファイルサイズ判定 If FileName(ImageCnt) <> "" Then If fso.GetFile(Server.MapPath(ImageFolder) & "\" & FileName(ImageCnt)).Size > MaxFileSize * 1024 Then On Error Resume Next Call fso.DeleteFile(Server.MapPath(ImageFolder) & "\" & FileName(ImageCnt), True) '元画像を書き戻す If MotoImageFile(ImageCnt) <> "" Then Call fso.CopyFile(Server.MapPath(ImageFolder) & "\Temp" & ImageCnt & ".img", Server.MapPath(ImageFolder) & "\" & MotoImageFile(ImageCnt), True) End If On Error Goto 0 Response.Write("ファイルサイズが大きすぎます。<br><br>") Response.Write("受付可能なファイルサイズは" & MaxFileSize & "KByteまでです。<br><br>") Response.Write("<a href=""JavaScript:history.go(-1)"">戻る</a>") Exit Sub End If End If 'サムネイルを作成 If ActFileNum(ImageCnt) = "A" Then ActFileNum(ImageCnt) = "B" ElseIf ActFileNum(ImageCnt) = "B" Then ActFileNum(ImageCnt) = "C" Else 'If ActFileNum(ImageCnt) = "C" Or ActFileNum(ImageCnt) = "" Then ActFileNum(ImageCnt) = "A" End If NewOutFile = Left(FileName(ImageCnt), InStrRev(FileName(ImageCnt), ".") - 1) 'ファイル名を取り出す FileExt = Mid(FileName(ImageCnt), InStrRev(FileName(ImageCnt), ".") + 1) '拡張子を取り出す '商品詳細 TmpOutFile = NewOutFile & "_" & ImageXItemMain & "_" & ImageYItemMain & "_" & ActFileNum(ImageCnt) & "." & FileExt '出力ファイル名「元ファイル名_横_縦_ラベル.拡張子」 Call InscribedImageOut(ImageFolder & FileName(ImageCnt), Server.MapPath(ImageFolder) & "\" & TmpOutFile, ImageXItemMain, ImageYItemMain) '商品一覧 TmpOutFile = NewOutFile & "_" & ImageXItemThumb & "_" & ImageYItemThumb & "_" & ActFileNum(ImageCnt) & "." & FileExt '出力ファイル名「元ファイル名_横_縦_ラベル.拡張子」 Call InscribedImageOut(ImageFolder & FileName(ImageCnt), Server.MapPath(ImageFolder) & "\" & TmpOutFile, ImageXItemThumb, ImageYItemThumb) 'おすすめ商品 TmpOutFile = NewOutFile & "_" & ImageXItemOsusume & "_" & ImageYItemOsusume & "_" & ActFileNum(ImageCnt) & "." & FileExt '出力ファイル名「元ファイル名_横_縦_ラベル.拡張子」 Call InscribedImageOut(ImageFolder & FileName(ImageCnt), Server.MapPath(ImageFolder) & "\" & TmpOutFile, ImageXItemOsusume, ImageYItemOsusume) '新着商品 TmpOutFile = NewOutFile & "_" & ImageXItemNew & "_" & ImageYItemNew & "_" & ActFileNum(ImageCnt) & "." & FileExt '出力ファイル名「元ファイル名_横_縦_ラベル.拡張子」 Call InscribedImageOut(ImageFolder & FileName(ImageCnt), Server.MapPath(ImageFolder) & "\" & TmpOutFile, ImageXItemNew, ImageYItemNew) End If Next '旧仕様対策(存在しないサムネイルを生成) For ImageCnt = 1 To 3 Dim TmpMotoFile TmpMotoFile = "" If MotoImageFile(ImageCnt) <> "" Then TmpMotoFile = MotoImageFile(ImageCnt) End If If FileName(ImageCnt) <> "" Then TmpMotoFile = FileName(ImageCnt) End If If TmpMotoFile <> "" And ActFileNum(ImageCnt) = "" Then ActFileNum(ImageCnt) = "A" NewOutFile = Left(TmpMotoFile, InStrRev(TmpMotoFile, ".") - 1) 'ファイル名を取り出す FileExt = Mid(TmpMotoFile, InStrRev(TmpMotoFile, ".") + 1) '拡張子を取り出す '商品詳細 TmpOutFile = NewOutFile & "_" & ImageXItemMain & "_" & ImageYItemMain & "_" & ActFileNum(ImageCnt) & "." & FileExt '出力ファイル名「元ファイル名_横_縦_ラベル.拡張子」 Call InscribedImageOut(ImageFolder & TmpMotoFile, Server.MapPath(ImageFolder) & "\" & TmpOutFile, ImageXItemMain, ImageYItemMain) '商品一覧 TmpOutFile = NewOutFile & "_" & ImageXItemThumb & "_" & ImageYItemThumb & "_" & ActFileNum(ImageCnt) & "." & FileExt '出力ファイル名「元ファイル名_横_縦_ラベル.拡張子」 Call InscribedImageOut(ImageFolder & TmpMotoFile, Server.MapPath(ImageFolder) & "\" & TmpOutFile, ImageXItemThumb, ImageYItemThumb) 'おすすめ商品 TmpOutFile = NewOutFile & "_" & ImageXItemOsusume & "_" & ImageYItemOsusume & "_" & ActFileNum(ImageCnt) & "." & FileExt '出力ファイル名「元ファイル名_横_縦_ラベル.拡張子」 Call InscribedImageOut(ImageFolder & TmpMotoFile, Server.MapPath(ImageFolder) & "\" & TmpOutFile, ImageXItemOsusume, ImageYItemOsusume) '新着商品 TmpOutFile = NewOutFile & "_" & ImageXItemNew & "_" & ImageYItemNew & "_" & ActFileNum(ImageCnt) & "." & FileExt '出力ファイル名「元ファイル名_横_縦_ラベル.拡張子」 Call InscribedImageOut(ImageFolder & TmpMotoFile, Server.MapPath(ImageFolder) & "\" & TmpOutFile, ImageXItemNew, ImageYItemNew) End If Next Query = "exec SPF商品更新 " & GB_ShopAdmin & ", " & Item & "" Query = Query & ", '" & Kaihatsu & "'" If Cat <> "" Then Query = Query & ", " & Cat & "" Else Query = Query & ", null" End If If SubCat <> "" Then Query = Query & ", " & SubCat & "" Else Query = Query & ", null" End If Query = Query & ", " & Area & " " Query = Query & ", " & Pref & " " Query = Query & ", '" & Meisho & "' " If Kakaku <> "" Then Query = Query & ", " & Kakaku & "" Else Query = Query & ", null" End If Query = Query & ", '" & ShohiZei & "' " Query = Query & ", '" & Hozon & "' " If HozonTemp <> "" Then Query = Query & ", " & HozonTemp & "" Else Query = Query & ", null" End If If OrderMax <> "" Then Query = Query & ", " & OrderMax & "" Else Query = Query & ", null" End If Query = Query & ", '" & Shokai & "' " For ImageCnt = 1 To 3 If FileName(ImageCnt) <> "" Then Query = Query & ", '" & FileName(ImageCnt) & "' " Else Query = Query & ", '" & MotoImageFile(ImageCnt) & "' " End If Query = Query & ", '" & ActFileNum(ImageCnt) & "' " Next Query = Query & ", '" & ImageFileListView & "', '" & Biko & "', '" & NoCart & "', '" & NoCartURL & "', '" & Publish & "' " 'Response.Write(Query) 'Exit Sub Set Content = SQLQuery(Query, SQLServer, DatabaseName, DatabaseUser, DatabasePass) Query = "exec SPF商品おすすめ更新 " & GB_ShopAdmin & ", " & Item & ", '" & Osusume & "'" Set Content = SQLQuery(Query, SQLServer, DatabaseName, DatabaseUser, DatabasePass) End If '退避ファイルの削除 For ImageCnt = 1 To 3 On Error Resume Next Call fso.DeleteFile(Server.MapPath(ImageFolder) & "\Temp.img", True) Call fso.DeleteFile(Server.MapPath(ImageFolder) & "\Temp" & ImageCnt & ".img", True) On Error Goto 0 Next '商品公開フラグ If Publishing = "1" Then If Item <> "" Then '単一商品の公開(非利用) Query = "exec SPF商品公開 " & GB_ShopAdmin & ", " & Item & ", '" & Publish & "' " 'Response.Write(Query) 'Exit Sub Set Content = SQLQuery(Query, SQLServer, DatabaseName, DatabaseUser, DatabasePass) Else '商品全体の公開 Query = "exec SPMショップ商品公開 " & GB_ShopAdmin & ", '" & Publish & "' " 'Response.Write(Query) 'Exit Sub Set Content = SQLQuery(Query, SQLServer, DatabaseName, DatabaseUser, DatabasePass) ItemReturn = False End If End If 'If ItemReturn Then Response.Redirect(HomeAliasSL & "shopshelf.asp?Order=" & Order & "&Item=" & Item & "&" & TimeUniq() & "&ActShopID=" & ActShopID) '単一商品に戻る 'Else ' Response.Redirect(HomeAliasSL & "shopshelf.asp?Order=" & Order) 'End If End Sub %>