文件上傳網頁對話框
⑴ 登錄網站後台上傳產品圖片的時候跳出來對話框 上傳的文件擴展名是不允許的擴展名 ,請教高手指導一下,
剛剛我用蘋果電腦在後台上傳圖片的時候也發生了這種問題,原因是文件名稱的後綴,那張圖片沒有.png的後綴,但是蘋果電腦還是默認他是圖片打開了,所以你只要給文件名後面加上對應的後綴(取決於後台那裡能上傳什麼)即可
⑵ 電腦上傳文件時,老是跳出這個提示框,沒辦法上傳文件,求大神指點
1、打開IIE瀏覽器,點擊上面的工具,依次點「Internet 選項」。 之後再在「Internet 選項」對話框中,單擊「安全」——「默認級別」,選好後點擊確認。
2、重新打開IE瀏覽器,點程序,點管理載入項。
3、打開管理載入項後,會出現當前已載入的載入項,將不需要的載入項全部禁用就可以了。
如果這個方法不行,建議換一個瀏覽器。
⑶ ASP文件上傳原理分析及實現實例
摘要 在基於/的應用環境中 上傳各種類型的文件一直是困擾用戶文件管理應用的難題之一 在HTTP中上傳文件有三種機制 RFC PUT和WebDAV 常用的實現方法是利用在RFC 中引入的一個新類型 File以及ADO Stream對象 本文對上述上傳方法及實現原理作了論述 並給出了具體解決實例 ASP FILE對象
當前 基於/模式的應用比較流行 當用戶需要將文件傳輸到上時 常用方法之一是運行FTP並將每個用戶的FTP默認目錄設為用戶的Web主目錄 這樣用戶就能運行FTP客戶程序並上傳文件到指定的 Web目錄 這就要求用戶必須懂得如何使用FTP客戶程序 因此 這種解決方案僅對熟悉FTP且富有經驗的用戶來說是可行的 如果我們能把文件上傳功能與Web集成 使用戶僅用Web就能完成上傳任務 這對於他們來說將是非常方便的 但是 一直以來 由於File System Object的僅能傳送文本文件的局限 所以ASP最大的難題就是文件上傳問題 下面介紹的就是如何在基於HTTP協議的網頁中實現文件的上傳
一 通過HTTP上傳的三種機制
通過HTTP上傳有三種機制 RFC PUT 和 WebDAV
PUT 是在HTTP 引入了一個新的HTTP動詞 當web收到一個HTTP PUT和對象名字 它將會驗證用戶 接收HTTP流的內容 並把它直接存入web 由於這可能會對一個web站點造成破壞 並且還會失去HTTP最大的優勢 可編程性 在PUT的情況下 自己處理請求 沒有空間讓CGI或者ASP應用程序介入 唯一讓你的應用程序捕獲PUT的方法是在低層操作 ISAPI過濾層 由於相應的原因 PUT的應用很有限
而WebDAV允許web內容的分布式拆吵認證與翻譯 它引入了幾種新的HTTP動詞 允許通過HTTP上傳 鎖定/解鎖 登記/檢驗web內容行御知 Office 中的 Save to web 就是通過WebDAV來實現的 如果你所感興趣的一切都是上傳內容 WebDAV應用得非常出色 它解決了很多問題 然而 如果你需要在你的web應用程序裡面上傳文件 WebDAV對你就毫無用處可言 象HTTP PUT一樣 那些WebDAV的動詞是被解釋的 而不是web應用程序 你需要工作在ISAPI過濾層來訪問WebDAV的這些動詞 並在你的應用程序中解釋內容
RFC () 最終被W C在HTML 中接受前 是作為一種建議標准 它是一種非常簡單但是功能很強大的想法 在表單欄位中定義一個新類型 <INPUT TYPE= FILE >
並且在表單本身加入了不同的編碼方案 不再使用典型的 <FORM ACTION= formproc asp METHOD= POST > 而是使用 <FORM ACTION= formproc asp METHOD= POST ENCTYPE= multipart/form data >這種編碼方案在傳送大量數據的時候 比起預設的 application/x url encoded 表單編碼方案 顯得效率要高得多 URL編碼只有很有限的字元集 使用任何超出字檔消符集的字元 必須用 %nn 代替 這里的nn表示相應的 個十六進制數字 例如 即使是普通的空格字元也要用 % 代替 而RFC 使用多部分MIME編碼 就象通常在e mail消息中看到的那樣 不編碼來傳送大量數據 而只是在數據周圍加上很少的簡單但實用的頭部 主要的廠商都採用了建議的 瀏覽…… 按鈕 用戶能很容易的使用本地 打開文件…… 對話框選擇要上傳的文件
RFC 仍然將大多數文件上傳的靈活方法留給了你的web應用程序 PUT用得很有限 WebDAV對內容的作者很有用 比如FrontPage用戶 但是對想在web應用程序中加入文件上傳的web開發者來說很少用到 因此 RFC 是在web應用程序中加入文件上傳的最好的辦法
在實際應用中 免費提供了Posting Acceptor ASP不懂 multipart/form data 編碼方案 取而代之 提供了Posting Acceptor Posting Acceptor是一種在上傳完成後 接受REPOST到一個ASP頁的ISAPI應用程序
Sofare Artisans的SA FileUp是最早的商業Active Server之一 幾經改進 現在作為一個純粹的ASP存在
二 基於ASP的文件上傳實現原理分析
基本原理是 採用ADO Stream對象的BinaryRead方法將FORM中的所有數據讀出 從中截取出所需的文件數據 以二進制文件方式存檔
下面是上傳文件頁面的一個例子() <><body><form name= Upload Method= Post Enctype= multipart/form data Action= Upload asp ><input type= file name= FileName ><INPUT TYPE= Submit VALUE= Upload ></TD></form></body></>
程序中使用了文件對象 這樣在Upload asp中採用BinaryRead方法讀來的原始數據就不僅僅是選擇的文件本身的數據 還包含該文件在用戶硬碟上的路徑 類型 提交頁面的表單等相關信息的描述 這樣我們就需從中提取出文件的具體內容 根據分析 數據的頭部信息與數據的分界線是兩對回車換行符 尾部也有分隔信息 我們可以採用類似以下的方法獲取文件數據 Dim FormData FormSize DataStart CLStr DivStrFormSize=Request TotalBytesFormData=Request BinaryRead(FormSize)CLStr=ChrB( )&ChrB( )DataStart=InStrB(FormData CLStr&CLStr)+ 是兩對回車換行符的長度DivStr=LeftB(FormData InStrB(FormData CLStr) )DataSize=InStrB(DataStart+ FormData DivStr) DataStart FormData=MidB(FormData DataStart DataSize) FormData就是文件的內容了 中間根據需要 可進行相應的處理 最後的工作就是將文件保存了 保存的方法可以有兩種 一種是利用VB或VC之類程序中的二進制文件操作方法 在工程中加入適當的類型庫 最終編譯成DLL文件 使用時再將該DLL文件注冊就可以了 文件存貯程序如下 Public Function SaveFile(Pathname As String) As String Dim objContext As ObjectContext Dim objRequest As Request Set objContext=GetObjectContext() Set objRequest=objContext( Request ) 以下的一段代碼是進行文件存貯的有關操作Dim FormData() As Byte CLStr DivStr Dim DataStart As Long DataSize As Long DataSize=objRequest TotalBytes Redim FormData(DataSize ) FormData=objRequest BinaryRead(DataSize) CLStr=ChrB( ) & ChrB( ) DataStart=InStrB(FormData CLStr & CLStr)+ DivStr=LeftB(FormData InStrB(FormData CLStr) ) DataSize=InStrB(DataStart+ FormData DivStr) DataStart FormData=MidB(FormData DataStart DataSize) 創建一個二進制文件並將FormData寫入其中 Open Pathname For Binary As Put # FormData Close # SaveFile= OK! End Function 第二種方法是利用ADO STREAM中提供的二進制文件操作方法來完成 保存文件的語句是 StreamOBJ SaveToFile (fileName ) 在 這種操作中 我們可以將有關的操作存放在一個類文件中 在應用時 直接將該類文件包含在ASP程序中就可以了 具體處理方法 請參閱有關介紹 三.文件上傳實現方法實例 實現文件上傳可使用或無方式 對於類 比如說microsoft posting acceptor(簡稱mpa) 就是公司發布的一個免費 這類的安裝也比較方便 對於的mpa 運行它的安裝文件就可以了 而一般的dll形式的 我們則需要進行注冊 例如 要使用aspcnUP dll 只要在Window 上執行regsvr [path]aspcnUP dll 系統出現注冊成功的信息提示就可以使用該了 對於無類 如的無上傳類 upload_ xsoft 在使用時 只要在處理程序中包含以下的語句就可以了 <! #include FILE= upload inc >set upload=new upload_ xSoft 建立上傳對象 有關的屬性與操作方法 請參閱該的使用手冊 下面是詀spcnUP dll為例 上傳部分類型文件的源代碼(upload asp) <% @ language= vbscript Set fileUP=Server CreateObject( aspcn Upload )fileUP Maxsize= fileUP Path= d:upfile fileUP UploadFor i= to fileUP Countfieldname=fileUP FieldName(i)If fileUP FileType(fieldname)= zip Or ileUP FileType(fieldname)= rar ThenfileUP Save fieldnameEnd If NextSet fileUP=Nothing%> 四.結束語 應用模式還在快速地發展著 在ASP.NET中 已經內置了文件上傳的功能 使用非常簡單方便 作為一種全新的技術 ASP.NET並不只是ASP的簡單升級 它是一個用於Web開發的全新框架 其中包含了許多新的特性 ASP.NET提供了更易於編寫 結構更清晰的代碼 利用這些代碼我們將會更容易地進行再利用和共享 從而開發出更多更實用的程序來 lishixin/Article/program/net/201311/13562