1. ASP怎樣無組件上傳文件到指定文件夾,並且將路徑寫入資料庫如題 謝謝了
<head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>示例結果</title> <link href="../style.css" rel="stylesheet" type="text/css"> </head> <body style="font-size:12px"> <% Dim Upload,successful '=============================================================================== set Upload=new AnUpload '創建類實例 Upload.SingleSize=1024*1024 '設置單個文件最大上傳限制,按位元組計;默認為不限制 Upload.MaxSize=4096*1024 '設置最大上傳限制,按位元組計;默認為不限制 Upload.Exe="rar|jpg|bmp|gif|doc|xls|ppt|txt" '設置合法擴展名,以|分割,忽略大小寫 Upload.GetData() '獲取並保存數據,必須調用本方法 '=============================================================================== if Upload.Err>0 then '判斷錯誤號,如果myupload.Err<=0表示正常 response.write Upload.Description '如果出現錯誤,獲取錯誤描述 else response.Write "表單text1的值為: " & Upload.Forms("text1") & "<br />" if Upload.forms("file1")<>"" then '這里判斷你file1是否選擇了文件 path=server.mappath("files") '文件保存路徑(這里是files文件夾) set tempCls=Upload.files("file1")  successful=tempCls.SaveToFile(path,0) '以時間+隨機數字為文件名保存 'successful=tempCls.SaveToFile(path,1) '如果想以原文件名保存,請使用本句 if successful then response.write tempCls.FileName & "上傳完畢,大小為" & Upload.getsize(tempCls.Size) & ";<br />本地路徑" & Upload.forms("file1") & "!<br />" Response.Redirect "InsertDatabase.asp?FileName="&Upload.Forms("text1")&"&FilePath="&tempCls.FileName  else response.write "上傳失敗" end if set tempCls=nothing end if end if set Upload=nothing '銷毀類實例 %> </body> </html> 
採納哦
2. ASP怎麼能實現無組件上傳啊
功能簡介 
' 將上傳的文件數據保存到資料庫中,可以處理表單中的多個上傳文件的情況
' 適用於各種資料庫,使用ADO的方法連接資料庫
' 本示例中使用的是ACCESS資料庫:zj.mdb
' 表:tb_img(id int(自增列),path text(255) 保存上傳文件的目錄
' ,fname text(250) 保存上傳的文件名,type test(250) 保存上傳文件的類型
'        ,img ole對象 保存上傳的文件內容
'
' 
'==================================================================
'==================================================================
'
' 上傳文件的HTML頁: zj_up.htm
'
'==================================================================
代碼:
<html>
<head>
<title>文件上傳保存到資料庫中</title>
</head>
<body>
<form name="form1" enctype="multipart/form-data" method="post" action="zj_up.asp">
  <p>
    <input type="file" name="file">
    <input type="submit" name="Submit" value="上傳">
  </p>
</form>
</body>
</html> 
'==================================================================
'
'  上傳文件保存到資料庫的ASP頁: zj_up.asp
'
'==================================================================
代碼:
<%
Response.Expires=0
Function f_Bin2Str(ByVal sBin)
    Dim iI, iLen, iChr, iRe       
    iRe = ""
    If Not IsNull(sBin) Then
        iLen = LenB(sBin)
        For iI = 1 To iLen
            iChr = MidB(sBin, iI, 1)
            If AscB(iChr) > 127 Then
                iRe = iRe & Chr(AscW(MidB(sBin, iI + 1, 1) & iChr))
                iI = iI + 1
            Else
                iRe = iRe & Chr(AscB(iChr))
            End If
        Next
    End If    
    f_Bin2Str = iRe
End Function
iConcStr = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False" & _ 
";Data Source=" & server.mappath("zj.mdb")
iSql="tb_img"
set iRe=Server.CreateObject("ADODB.Recordset")
iRe.Open iSql,iConcStr,1,3
iLen=Request.TotalBytes
sBin=Request.BinaryRead(iLen)
iCrlf1 = ChrB(13) & ChrB(10)
iCrlf2 = iCrlf1 & iCrlf1
iLen = InStrB(1, sBin, iCrlf1) - 1
iSpc = LeftB(sBin, iLen)
sBin = MidB(sBin, iLen + 34)
iPos1 = InStrB(sBin, iCrlf2) - 1
While iPos1 > 0
iStr = f_Bin2Str(LeftB(sBin, iPos1))
iPos1 = iPos1 + 5
iPos2 = InStrB(iPos1, sBin, iSpc)
iPos3 = InStr(iStr, "; filename=""") + 12
If iPos3 > 12 Then
  iStr = Mid(iStr, iPos3)
  iPos3 = InStr(iStr, Chr(13) & Chr(10) & "Content-Type: ") - 2
  iFn = Left(iStr, iPos3)
  If iFn <> "" Then
   iRe.AddNew
   ire("path")=left(iFn,instrrev(iFn,"")) 
   iRe("fname") = mid(iFn,instrrev(iFn,"")+1)
   iRe("type") = Mid(iStr, iPos3 + 18)
   iRe("img").AppendChunk MidB(sBin, iPos1, iPos2 - iPos1)
   iRe.Update
  End If
End If
sBin = MidB(sBin, iPos2 + iLen + 34)
iPos1 = InStrB(sBin, iCrlf2) - 1
Wend
iRe.close
set iRe=Nothing
%> 
'==================================================================
'
'  下載數據的ASP頁: zj_down.asp
'
'==================================================================
代碼:
<%
Response.Buffer=true
Response.Clear
iConcStr = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False" & _ 
";Data Source=" & server.mappath("zj.mdb")
set iRe=server.createobject("adodb.recordset")
iSql="tb_img"
iRe.open iSql,iconcstr,1,1
Response.ContentType=ire("type")
Response.BinaryWrite iRe("img")
iRe.close
set iRe=Nothing
%>
3. asp代碼怎樣實現無組件上傳
一、無組件上傳的原理
我還是一點一點用一個實例來說明的吧,客戶端HTML如下。要瀏覽上傳附件,我們通過<input type="file">元素,但是一定要注意必須設置form的enctype屬性為"multipart/form-data": 
<form method="post" action="upload.asp" enctype="multipart/form-data">
 <label>
  <input type="file" name="file1" />
 </label>
<input type="text" name="filename" value="default filename"/>
<input type="submit" value="Submit"/>
 <input type="reset" value="Reset"/>
</form>
在後台asp程序中,以前獲取表單提交的ASCII 數據,非常的容易。但是如果需要獲取上傳的文件,就必須使用Request對象的BinaryRead方法來讀取。BinaryRead方法是對當前輸入流進行指定位元組數的二進制讀取,有點需要注意的是,一旦使用BinaryRead 方法後,再也不能使用Request.Form 或 Request.QueryString 集合了。結合Request對象的TotalBytes屬性,可以將所有表單提交的數據全部變成二進制,不過這些數據都是經過編碼的。首先讓我們來看看這些數據是如何編碼的,有無什麼規律可循,編段代碼,在代碼中我們將BinaryRead讀取的二進制轉化為文本,輸出出來,在後台的upload.asp中(注意該示例不要上傳大文件,否則可能會造成瀏覽器死掉): 
<%
Dim biData, PostData
Size = Request.TotalBytes
biData = Request.BinaryRead(Size)
PostData = BinaryToString(biData,Size)
Response.Write "<pre>" & PostData & "</pre>"  '使用pre,原樣輸出格式
' 藉助RecordSet將二進制流轉化成文本
Function BinaryToString(biData,Size) 
 Const adLongVarChar = 201
 Set RS = CreateObject("ADODB.Recordset")
 RS.Fields.Append "mBinary", adLongVarChar, Size
 RS.Open
 RS.AddNew
  RS("mBinary").AppendChunk(biData)
 RS.Update
 BinaryToString = RS("mBinary").Value
 RS.Close
End Function 
%>
4. 求一個asp無組件上傳代碼,有要求,滿意著追加50分
<!--#include file="upload.asp"--> 
<% 
const upload_type=0 '上傳方法:0=無懼無組件上傳類,1=FSO上傳 2=lyfupload,3=aspupload,4=chinaaspupload 
dim upload,file,formName,SavePath,filename,fileExt 
dim upNum 
dim EnableUpload 
dim Forumupload 
dim ranNum 
dim uploadfiletype 
dim msg,founderr 
msg="" 
founderr=false 
EnableUpload=false 
SavePath = "../DateBasc/" '存放上傳文件的目錄 
if right(SavePath,1)<>"/" then SavePath=SavePath&"/" '在目錄後加(/) 
%> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 
</head> 
<body leftmargin="2" topmargin="0" marginwidth="0" marginheight="0"> 
<% 
if EnableUploadFile="No" then 
response.write "系統未開放文件上傳功能" 
else 
if session("admin")="" and session("UserName")="" then 
response.Write("請登錄後再使用本功能!") 
else 
select case upload_type 
case 0 
call upload_0() '使用化境無組件上傳類 
case else 
'response.write "本系統未開放插件功能" 
'response.end 
end select 
end if 
end if 
%> 
</body> 
</html> 
<% 
sub upload_0() '使用化境無組件上傳類 
set upload=new upload_file '建立上傳對象 
for each formName in upload.file '列出所有上傳了的文件 
set file=upload.file(formName) '生成一個文件對象 
if file.filesize<100 then 
msg="請先選擇你要上傳的文件!" 
founderr=true 
end if 
if file.filesize>(MaxFileSize*1024) then 
msg="文件大小超過了限制,最大隻能上傳" & CStr(MaxFileSize) & "K的文件!" 
founderr=true 
end if 
fileExt=lcase(file.FileExt) 
Forumupload=split(UpFileType,"|") 
for i=0 to ubound(Forumupload) 
if fileEXT=trim(Forumupload(i)) then 
EnableUpload=true 
exit for 
end if 
next 
if fileEXT="asp" or fileEXT="asa" or fileEXT="aspx" then 
EnableUpload=false 
end if 
if EnableUpload=false then 
msg="這種文件類型不允許上傳!\n\n只允許上傳這幾種文件類型:" & UpFileType 
founderr=true 
end if 
strJS="<SCRIPT language=javascript>" & vbcrlf 
if founderr<>true then 
randomize 
ranNum=int(900*rnd)+100 
FileName=SavePath&upload.form("name")&".xls" 
file.SaveToFile Server.mappath(FileName) '保存文件 
msg="文件上傳成功!" 
end if 
strJS=strJS & "alert('" & msg & "');" & vbcrlf 
if session("filename")<>"" then 
strJS=strJS & "document.location='add_danan.asp','right';" & vbcrlf 
else 
strJS=strJS & "history.go(-1);" & vbcrlf 
end if 
strJS=strJS & "</script>" 
response.write strJS 
next 
set upload=nothing 
end sub 
%> 
下面是upload.asp文件 
<% 
'---------------------------------------------------------------------- 
'轉發時請保留此聲明信息,這段聲明不並會影響你的速度! 
'******************* 無組件上傳類 ******************************** 
'修改者:梁無懼 
'電子郵件:[email protected] 
'網站:http://www.25cn.com 
'原作者:稻香老農 
'原作者網站:http://www.5xsoft.com 
'聲明:此上傳類是在化境編程界發布的無組件上傳類的基礎上修改的. 
'在與化境編程界無組件上傳類相比,速度快了將近50倍,當上傳4M大小的文件時 
'伺服器只需要10秒就可以處理完,是目前最快的無組件上傳程序,當前版本為0.96 
'源代碼公開,免費使用,對於商業用途,請與作者聯系 
'文件屬性:例如上傳文件為c:\myfile\doc.txt 
'FileName 文件名 字元串 "doc.txt" 
'FileSize 文件大小 數值 1210 
'FileType 文件類型 字元串 "text/plain" 
'FileExt 文件擴展名 字元串 "txt" 
'FilePath 文件原路徑 字元串 "c:\myfile" 
'使用時注意事項: 
'由於Scripting.Dictionary區分大小寫,所以在網頁及ASP頁的項目名都要相同的大小 
'寫,如果人習慣用大寫或小寫,為了防止出錯的話,可以把 
'sFormName = Mid (sinfo,iFindStart,iFindEnd-iFindStart) 
'改為 
'(小寫者)sFormName = LCase(Mid (sinfo,iFindStart,iFindEnd-iFindStart)) 
'(大寫者)sFormName = UCase(Mid (sinfo,iFindStart,iFindEnd-iFindStart)) 
'********************************************************************** 
'---------------------------------------------------------------------- 
dim oUpFileStream 
Class upload_file 
dim Form,File,Version 
Private Sub Class_Initialize 
'定義變數 
dim RequestBinDate,sStart,bCrLf,sInfo,iInfoStart,iInfoEnd,tStream,iStart,oFileInfo 
dim iFileSize,sFilePath,sFileType,sFormvalue,sFileName 
dim iFindStart,iFindEnd 
dim iFormStart,iFormEnd,sFormName 
'代碼開始 
Version="無組件上傳類 Version 0.96" 
set Form = Server.CreateObject("Scripting.Dictionary") 
set File = Server.CreateObject("Scripting.Dictionary") 
if Request.TotalBytes < 1 then Exit Sub 
set tStream = Server.CreateObject("adodb.stream") 
set oUpFileStream = Server.CreateObject("adodb.stream") 
oUpFileStream.Type = 1 
oUpFileStream.Mode = 3 
oUpFileStream.Open 
oUpFileStream.Write Request.BinaryRead(Request.TotalBytes) 
oUpFileStream.Position=0 
RequestBinDate = oUpFileStream.Read 
iFormEnd = oUpFileStream.Size 
bCrLf = chrB(13) & chrB(10) 
'取得每個項目之間的分隔符 
sStart = MidB(RequestBinDate,1, InStrB(1,RequestBinDate,bCrLf)-1) 
iStart = LenB (sStart) 
iFormStart = iStart+2 
'分解項目 
Do 
iInfoEnd = InStrB(iFormStart,RequestBinDate,bCrLf & bCrLf)+3 
tStream.Type = 1 
tStream.Mode = 3 
tStream.Open 
oUpFileStream.Position = iFormStart 
oUpFileStream.CopyTo tStream,iInfoEnd-iFormStart 
tStream.Position = 0 
tStream.Type = 2 
tStream.Charset ="gb2312" 
sInfo = tStream.ReadText 
'取得表單項目名稱 
iFormStart = InStrB(iInfoEnd,RequestBinDate,sStart)-1 
iFindStart = InStr(22,sInfo,"name=""",1)+6 
iFindEnd = InStr(iFindStart,sInfo,"""",1) 
sFormName = Mid (sinfo,iFindStart,iFindEnd-iFindStart) 
'如果是文件 
if InStr (45,sInfo,"filename=""",1) > 0 then 
set oFileInfo= new FileInfo 
'取得文件屬性 
iFindStart = InStr(iFindEnd,sInfo,"filename=""",1)+10 
iFindEnd = InStr(iFindStart,sInfo,"""",1) 
sFileName = Mid (sinfo,iFindStart,iFindEnd-iFindStart) 
oFileInfo.FileName = GetFileName(sFileName) 
oFileInfo.FilePath = GetFilePath(sFileName) 
oFileInfo.FileExt = GetFileExt(sFileName) 
iFindStart = InStr(iFindEnd,sInfo,"Content-Type: ",1)+14 
iFindEnd = InStr(iFindStart,sInfo,vbCr) 
oFileInfo.FileType = Mid (sinfo,iFindStart,iFindEnd-iFindStart) 
oFileInfo.FileStart = iInfoEnd 
oFileInfo.FileSize = iFormStart -iInfoEnd -2 
oFileInfo.FormName = sFormName 
file.add sFormName,oFileInfo 
else 
'如果是表單項目 
tStream.Close 
tStream.Type = 1 
tStream.Mode = 3 
tStream.Open 
oUpFileStream.Position = iInfoEnd 
oUpFileStream.CopyTo tStream,iFormStart-iInfoEnd-2 
tStream.Position = 0 
tStream.Type = 2 
tStream.Charset = "gb2312" 
sFormvalue = tStream.ReadText 
form.Add sFormName,sFormvalue 
end if 
tStream.Close 
iFormStart = iFormStart+iStart+2 
'如果到文件尾了就退出 
loop until (iFormStart+2) = iFormEnd 
RequestBinDate="" 
set tStream = nothing 
End Sub 
Private Sub Class_Terminate 
'清除變數及對像 
if not Request.TotalBytes<1 then 
oUpFileStream.Close 
set oUpFileStream =nothing 
end if 
Form.RemoveAll 
File.RemoveAll 
set Form=nothing 
set File=nothing 
End Sub 
'取得文件路徑 
Private function GetFilePath(FullPath) 
If FullPath <> "" Then 
GetFilePath = left(FullPath,InStrRev(FullPath, "\")) 
Else 
GetFilePath = "" 
End If 
End function 
'取得文件名 
Private function GetFileName(FullPath) 
If FullPath <> "" Then 
GetFileName = mid(FullPath,InStrRev(FullPath, "\")+1) 
Else 
GetFileName = "" 
End If 
End function 
'取得擴展名 
Private function GetFileExt(FullPath) 
If FullPath <> "" Then 
GetFileExt = mid(FullPath,InStrRev(FullPath, ".")+1) 
Else 
GetFileExt = "" 
End If 
End function 
End Class 
'文件屬性類 
Class FileInfo 
dim FormName,FileName,FilePath,FileSize,FileType,FileStart,FileExt 
Private Sub Class_Initialize 
FileName = "" 
FilePath = "" 
FileSize = 0 
FileStart= 0 
FormName = "" 
FileType = "" 
FileExt = "" 
End Sub 
'保存文件方法 
Public function SaveToFile(FullPath) 
dim oFileStream,ErrorChar,i 
SaveToFile=1 
if trim(fullpath)="" or right(fullpath,1)="/" then exit function 
set oFileStream=CreateObject("Adodb.Stream") 
oFileStream.Type=1 
oFileStream.Mode=3 
oFileStream.Open 
oUpFileStream.position=FileStart 
oUpFileStream.to oFileStream,FileSize 
oFileStream.SaveToFile FullPath,2 
oFileStream.Close 
set oFileStream=nothing 
SaveToFile=0 
end function 
End Class 
%>
5. ASP無組件與有組件上傳問題
這個估計要到IIS里修改哈,因為IIS默認上傳有限制的。
6. 如何在asp中使用無組件上傳文件!
2個文件
第一個文件:
<html>
<body>
<center>
<form name="mainForm" enctype="multipart/form-data" action="process.asp" method=post>
  <input type=file name=mefile><br>
  <input type=submit name=okvalue="OK">
</form>
</center>
</body>
</html>
第二個:
<%
sub pic()
if Request.QueryString("submit")="pic" then
uploadpath="image/face/"
uploadsize="2048"
uploadtype="jpg/gif/png/bmp"
Set Uprequest=new UpLoadClass
    Uprequest.SavePath=uploadpath
    Uprequest.MaxSize=uploadsize*1024 
    Uprequest.FileType=uploadtype
    AutoSave=true
    Uprequest.open
  if Uprequest.form("file_Err")<>0  then
  select case Uprequest.form("file_Err")
  case 1:str="<div style=""padding-top:5px;padding-bottom:5px;""> <font color=blue>上傳不成功!文件超過"&uploadsize&"k [<a href='javascript:history.go(-1)'>重新上傳</a>]</font></div>"
  case 2:str="<div style=""padding-top:5px;padding-bottom:5px;""> <font color=blue>上傳不成功!文件格式不對 [<a href='javascript:history.go(-1)']>重新上傳</a>]</font></div>"
  case 3:str="<div style=""padding-top:5px;padding-bottom:5px;""> <font color=blue>上傳不成功!文件太大且格式不對 [<a href='javascript:history.go(-1)'>重新上傳</a>]</font></div>"
  end select
  response.write str
  else
  response.write "<script language=""javascript"">parent.form2.pic.value='"&Uprequest.SavePath&Uprequest.Form("file")&"';" 
  response.write "</script>"
  response.write "</script>"
size=Uprequest.Form("file_size")
showsize=size & " Byte"   
   if size>1024 then  
      size=(size\1024)  
      showsize=size & " KB"  
   end if  
   if size>1024 then  
      size=(size/1024)  
      showsize=formatnumber(size,2) & " MB"    
   end if 
  response.write "<script language=""javascript"">parent.form2.url.value='"&showsize&"';" 
  response.write "</script>"
  response.write "<div style=""padding-top:5px;padding-bottom:5px;""> <font color=red>文件上傳成功</font> [<a href='javascript:history.go(-1)'>重新上傳</a>]</div>"
  end if
Set Uprequest=nothing
end if
response.write "<form name=form action=?action=pic&submit=pic method=post enctype=multipart/form-data>"
response.write "<input type=file name=file class='tx' size='20'> "
response.write "<input type=submit name=submit value=上傳 class=""tx1"">"
response.write "</form>"
end sub
%>
7. ASP無組件上傳代碼,只求簡單!
dim upload,file
set upload=new UpFile_Class ''建立上傳對象
upload.GetDate (2048*1024)   '取得上傳數據,限大小2M
if upload.err > 0 then
    select case upload.err
 case 1
 Response.Write "請先選擇你要上傳的文件 [ <a href=# onclick=history.go(-1)>重新上傳</a> ]"
 case 2
 Response.Write "文件大小超過了限制 2048K [ <a href=# onclick=history.go(-1)>重新上傳</a> ]"
 end select
 else
 formPath="UploadFile/"   '上傳目錄
 for each formName in upload.file ''列出所有上傳了的文件
 set file=upload.file(formName)  ''生成一個文件對象
 fileExt=lcase(file.FileExt)     '取文件後綴名
 '付值變數
 randomize
 ranNum=int(90000*rnd)+10000 '生成隨機數
 F_Type=CheckFiletype(fileEXT)
        file_name=year(now)&month(now)&day(now)&hour(now)&minute(now)&second(now)&ranNum
 filename=file_name&"."&fileExt
 rename=filename&"|"
 filename=formPath&filename  '以上根據時間及隨機數
生成新的文件名
 Filesize=file.FileSize      '取文件大小
 '記錄文件
 if Filesize>0 then      '如果 FileSize > 0 說明有文件數據
 file.SaveToFile Server.mappath(FileName)   ''執行上傳文件
 end if
 set file=nothing
next
end if
set upload=nothing
8. 用ASP實現無組件上傳/下載文件
調試程序,建議你關閉瀏覽器的「顯示友好的http錯誤」重新啟動瀏覽器以查看錯誤的詳細情況你就會看到例如:
Active Directory 錯誤 '80070057' 
一個或數個參數無效 
/cs.asp,行 3 
的錯誤內容,以便修改更正!
(如果關閉「顯示友好的http錯誤」後還是提示500錯誤,你可能需要把iis伺服器中該站點的500自定義錯誤設置為默認值)
9. asp無組件上傳
6行代碼實現無組件上傳
目前有很多無組件上傳類,我大概看了一下,大多寫的相當復雜,有的居然還只能傳文本最關鍵的是沒有10行代碼以下的 :)我花了一個晚上時間研究了一下ADODB.Stream,並且用了6行代碼實現了無組件上傳:
strFileName = Request.QueryString("file1")
Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Type = 1 ' adTypeBinary
objStream.Open
objStream.LoadFromFile strFileName
objStream.SaveToFile Server."123_onweb.gif",2
使用方法:
把上面的代碼寫成upload.asp
在瀏覽器裡面輸入:
http://XXX/upload.asp?file1=c:\上傳文件\123.gif
XXX為你的主機地址
執行完後你會看到你的目錄下面多了一個123_onweb.gif
他就是你要文件拉!!!!
根據原理我們可以擴展以下代碼:
upload.asp文件
<%
Function GetFileName(ByVal strFile)
  If strFile <> "" Then
   GetFileName = mid(strFile,InStrRev(strFile, "\")+1)
  Else
   GetFileName = ""
  End If
End  function
strFileName = Request.Form("file1")
Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Type = 1 ' adTypeBinary
objStream.Open
objStream.LoadFromFile strFileName
objStream.SaveToFile Server.MapPath(GetFileName(strFileName)),2
objStream.Close
%>
upload.htm文件
<form name="FORM" action="upload.asp" method="post">
  <input type="submit" name="submit" value="OK">
     <input type="file" name="file1" style="width:400"  value="">
</form>
10. asp無組件上傳如何實現上傳pdf文件
把源文件發過來看看!
