某個案子要做 [AS3] 擷取 Flash 畫面上的某一區塊為圖檔 這樣的需求,但得到空間資訊後才發現必須得用古老的 ASP 寫。
上網找了一下,寫法整理在下面。
Base64 的變數名為 imageData,請用 POST 方式丟。
※另外要注意,在 IIS 中,ASP 針對存入圖檔的目錄需另外開啟 IUSR 角色寫入的權限。
[code language=”VB”]
<%@Language="VBScript" CodePage=65001 %>
<%
On Error Resume Next
Function getTimeToString()
Dim MyNewRandomNum
Randomize
MyNewRandomNum = Int(Rnd * 100)+1
d = Now()
getTimeToString = Year(d) & "_" & Month(d) & "_" & Day(d) & "_" & Hour(d) & "_" & Minute(d) & "_" & Second(d) & "_" & MyNewRandomNum
End Function
Dim filename
filename = getTimeToString() & ".jpg"
Dim xml : Set xml=Server.CreateObject("MSXML2.DOMDocument")
Dim stm : Set stm=Server.CreateObject("ADODB.Stream")
xml.resolveExternals=False
xml.loadXML "<?xml version=’1.0′?><data><![CDATA[" & Request.Form("imageData") & "]]></data>"
xml.documentElement.setAttribute "xmlns:dt","urn:schemas-microsoft-com:datatypes"
xml.documentElement.dataType = "bin.base64"
stm.Type=1 ‘adTypeBinary
stm.Open
stm.Write xml.documentElement.nodeTypedValue
stm.SaveToFile Server.MapPath("upload") & "/" & filename
stm.Close
Set xml=Nothing
Set stm=Nothing
IF err.number<>0 THEN
Response.Write "Result=Failed&msg=發生錯誤"
ELSE
Response.Write "Result=" & filename ‘輸出檔名
END IF
%>
[/code]
不好意思,請問我使用您的程式碼在IE11上執行,但我是另存為JPEG。出現error。Error number:3001 引數中可能發生類型錯誤、超過可接受的定義範圍、或與其他引數發生衝突。 找了許多資料但仍然還是無解,想直接請教您是否有解決方法呢?謝謝!!
抱歉我已解決,我是參考下列網址
http://stackoverflow.com/questions/14629104/save-base64-to-an-image-using-classic-asp