HOME > Graphic for Web > Forum > ขอรบกวนอีกครั้งนะครับการ upload รูปภาพ หากต้องการนำชื่อไฟล์ไปเก็บไว้ฐานข้อมูล ให้ทำการ Add ชื่อไฟล์ filename_new ลงในฐานข้อมูล
ไม่ทราบว่าจะบันทึกยังไงถึงจะลงฐานข้อมูลได้ครับ
ชื่อไฟล์ data ชื่อตาราง file ชื่อ ฟิล xx
พี่ช่วยกรุณาเขียนให้เต็มสักนิดนึงนะครับ ผมไม่รู้จริงๆ
------------------------------------------------------------------------------
ตัวอืนผมทำได้ตามตัวอย่างในบทเรียนของพี่ แต่ตัวนี้หล่ะยากจริงๆ
------------------------------------------------------------------------------
Set fs=Server.CreateObject("Scripting.FileSystemObject")
Set uploadfile=fs.CreateTextFile(Server.Mappath("Picture"&"/"&filename_new))
uploadfile.Write uploaddata.Item("file").Item("value")
สร้าง Upload.asp
<%
Sub BuildUploadRequest(RequestBin)
PosBeg = 1
PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(13)))
boundary = MidB(RequestBin,PosBeg,PosEnd-PosBeg)
boundaryPos = InstrB(1,RequestBin,boundary)
Do until (boundaryPos=InstrB(RequestBin,boundary & getByteString("--")))
Dim UploadControl
Set UploadControl = CreateObject("Scripting.Dictionary")
Pos = InstrB(BoundaryPos,RequestBin,getByteString("Content-Disposition"))
Pos = InstrB(Pos,RequestBin,getByteString("name="))
PosBeg = Pos+6
PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(34)))
Name = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
PosFile = InstrB(BoundaryPos,RequestBin,getByteString("filename="))
PosBound = InstrB(PosEnd,RequestBin,boundary)
If PosFile<>0 AND (PosFile<PosBound) Then
PosBeg = PosFile + 10
PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(34)))
FileName = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
UploadControl.Add "FileName", FileName
Pos = InstrB(PosEnd,RequestBin,getByteString("Content-Type:"))
PosBeg = Pos+14
PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(13)))
ContentType = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
UploadControl.Add "ContentType",ContentType
PosBeg = PosEnd+4
PosEnd = InstrB(PosBeg,RequestBin,boundary)-2
Value = MidB(RequestBin,PosBeg,PosEnd-PosBeg)
Else
Pos = InstrB(Pos,RequestBin,getByteString(chr(13)))
PosBeg = Pos+4
PosEnd = InstrB(PosBeg,RequestBin,boundary)-2
Value = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
End If
UploadControl.Add "Value" , Value
UploadRequest.Add name, UploadControl
BoundaryPos=InstrB(BoundaryPos+LenB(boundary),RequestBin,boundary)
Loop
End Sub
Function getByteString(StringStr)
For i = 1 to Len(StringStr)
char = Mid(StringStr,i,1)
getByteString = getByteString & chrB(AscB(char))
Next
End Function
Function getString(StringBin)
getString =""
For intCount = 1 to LenB(StringBin)
getString = getString & chr(AscB(MidB(StringBin,intCount,1)))
Next
End Function
'------------------------------------------------------------------
' 5.สร้าง sub program สำหรับทำขั้นตอนต่อไปนี้
' 5.1.validate ค่าฟิลด์ประเภท blob
' 5.2.จำกัดขนาดของไฟล์ฟิลด์ประเภท blob
' 5.3.upload to server
Sub uploadimage(imgvalue,imgname)
' 5.1.validate ค่าฟิลด์ประเภท blob
if filepathname <> "" then
if lenB(imgvalue) = 0 then
response.write "<b>Can't not Upload " & "ไม่มีไฟล์นี้ / ไฟล์มีขนาดเป็นศูนย์ คลิก Back </b>"
response.end
end if
end if
' 5.2.จำกัดขนาดของไฟล์ฟิลด์ประเภท blob
limitSize = 300 * 1024 ' 300 kByte
if lenB(imgvalue) > limitSize then
response.write "<b>File ใหญ่เกิน " & FormatNumber(limitSize / 1024) & "300 KB คลิก Back กลับไปเลือกใหม่"
response.end
end if
' ตรวจสอบว่ามี File นั้นอยู่บน Server หรือไม่ ถ้ามีก็ทำการเปลี่ยนชื่อ File ให้
i=1
while reportfilestatus(filepath&"\"&imgname) <> "false"
if reportfilestatus(filepath&"\"&imgname) = "true" then
imgname = left(imgname,4)&i&right(imgname,len(left(imgname,4)))
pimages = imgname
i=i+1
end if
wend
' 5.3.upload to server
if filepathname <> "" then
Set ScriptObject = Server.CreateObject("Scripting.FileSystemObject")
Set fileObj = ScriptObject.CreateTextFile(filepath & "/" & imgname)
For i = 1 to LenB(imgvalue)
fileObj.Write chr(AscB(MidB(imgvalue,i,1)))
Next
fileObj.Close
end if
End Sub
function reportfilestatus(filespec)
set fso =createobject("scripting.filesystemobject")
if (fso.fileexists(filespec)) then
msg = "true"
else
msg = "false"
end if
reportfilestatus = msg
end function
' เพิ่มข้อมูลลง DataBase
sql = "select * from ชื่อตาราง"
set rs=server.createobject("adodb.recordset")
rs.open sql,conn,1,3
rs.addnew
rs("ชื่อฟิล")= pimages
rs.update
rs.close
conn.close
%>