ファイルアップロード
画像などのファイルをXCuteで取り扱うには、下記の方法でXCuteのWEB公開フォルダーc:\InetPub\procgi(バージョン番号)\profiles
フォルダにファイルアップロードして、ファイル名をデータベースで管理します。
下記が、ファイルアップロードのフォームとテキストボックスになります。
Excelの入力規則で入力値の種類に文字列を指定し、エラータイトルをfileと指定(Type属性がFile)したセルが参照ボタンが付いたファイル名入力フィールドになります。タグ差込位置のセルに、|Type=fileと記述しても同様です。
この時のFormタグは下記のようにし、Hiddenタグで、P=とReadReport=を指定するほか、Updir=XXとします。Updirはファイルがアップロードされるサブフォルダー名です。UpDirが空白の時、procgi/profilesフォルダーへファイルはアップロードされます。
<FORM ENCTYPE='multipart/form-data' ACTION='procgi.exe'
METHOD='POST'><Input Type='Hidden' Name='UpDir'
Value=''>
なお、アップロード可能なファイル名の長さはXCuteのキャラクターセット(ShiftJIS /
UTF8)および、ファイル名モード(従来モード /
ロングファイル名モード)により異なります。
キャラクターセットは proles.ini
のCharsetにて切り替えることが可能です。
ファイル名モードは proles.ini
のLongFileNameにて切り替えることが可能です。
○ファイル名モード=従来モード時のアップロード可能なファイル名の長さ:
キャラクターセット=ShiftJISモードの場合、全角31文字(+拡張子半角3文字)まで。
キャラクターセット=UTF8モードの場合、全角16文字(+拡張子半角文字)まで。
○ファイル名モード=ロングファイル名モード時のアップロード可能なファイル名の長さ:
キャラクターセット=ShiftJISモードの場合、全角300文字程度。
キャラクターセット=UTF-8モードの場合、で全角150-200文字程度。
アップロード可能なファイル名の長さに揺らぎがあるのは、ファイル名をエンコードした際のサイズが1800文字までであれば受け入れる仕様となっているためです。
従来モードは、 実ファイル名がエンコードされてc:\InetPub\procgi(バージョン番号)\profiles フォルダに格納されますが、ロングファイル名モードは一律、NoNameというファイル名になります。
また、ロングファイル名モードを使うときは、ファイル名をDBに格納しておく必要があります。
以下に、従来モードとロングファイル名モードのファイル名ルールについて示します。
○ファイル名モード=従来モード時のファイル名ルール:
グリニッジ累積秒(10n)
+ 枝番(3n) + [フラグ] + "_" + URLエンコードファイル名
例:2019/6/12
10:25頃、xcute.gifというファイルを、UTF-8モードでアップロードした場合。
1560302721000u_xcute%2Egif
というファイル名で、c:\InetPub\procgi(バージョン番号)\profiles
フォルダに格納されます。さらにこの格納ファイル名が、アップロードフォームの入力規則に返されます。
フラグの意味は以下の通りです
フラグなし=ファイル名がS-JIS
U=ファイル名がUTF-8
○ファイル名モード=ロングファイル名モード時のファイル名ルール:
グリニッジ累積秒(10n)
+ 枝番(3n) + "フラグ" + "_NoName%2e" +
拡張子
というファイル名で、c:\InetPub\procgi(バージョン番号)\profiles フォルダに格納されます。さらに、生のファイル名が、アップロードフォームの入力規則に返されます。
例:あいうえおかきくけこさしすせそたちつてと.jpgをアップロードした場合。
1560306886000L_NoName%2Ejpg
というファイル名でc:\InetPub\procgi(バージョン番号)\profiles
フォルダに格納されます。 アップロードフォームの入力規則には、profilesの格納ファイル名と、生のファイル名が「:」コロン文字を区切りとして返されます。
1560306886000L_NoName%2Ejpg:あいうえおかきくけこさしすせそたちつてと.jpg
フラグは、「L」が常に入ります。
利用可能バージョン(ロングファイル名モード)
XCute Build
(12or13).13.12以降
参照
○WEB機能について
○入力フォームの仕組みについて
○タグ差込とhtmltag識別子
○入力エリアの属性差込
○入力規則によるフォーム要素の作成