![jspSmartUpload上傳全攻略_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-6/14/0e727b90-1001-4a32-acda-a41fc8d075f7/0e727b90-1001-4a32-acda-a41fc8d075f71.gif)
![jspSmartUpload上傳全攻略_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-6/14/0e727b90-1001-4a32-acda-a41fc8d075f7/0e727b90-1001-4a32-acda-a41fc8d075f72.gif)
![jspSmartUpload上傳全攻略_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-6/14/0e727b90-1001-4a32-acda-a41fc8d075f7/0e727b90-1001-4a32-acda-a41fc8d075f73.gif)
![jspSmartUpload上傳全攻略_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-6/14/0e727b90-1001-4a32-acda-a41fc8d075f7/0e727b90-1001-4a32-acda-a41fc8d075f74.gif)
![jspSmartUpload上傳全攻略_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-6/14/0e727b90-1001-4a32-acda-a41fc8d075f7/0e727b90-1001-4a32-acda-a41fc8d075f75.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、jsp smart upload上傳下載全攻略一、安裝篇jspsmartupload是由網(wǎng)站開發(fā)的一個(gè)可免費(fèi)使用的全功能的文件上傳下載組 件,適于嵌入執(zhí)行上傳下載操作的jsp文件中。該組件有以下幾個(gè)特點(diǎn):1、使用簡單。在jsp文件中僅僅書寫三五行java代碼就可以搞 定文件的上傳或下載,方便。2、能全程控制上傳。利用jspsmartupload組件提供的對象及其操作方法,可以獲得全部上傳文件的 信息(包括文件名,大小,類型,擴(kuò)展名,文件數(shù)據(jù)等),方便存取。3、能對上傳的文件在大小、類型等方面做出限制。如此可以濾掉不符合要 求的文件。4、下載靈活。僅寫兩行代碼,就能把web服務(wù)器變成文件服務(wù)器。
2、不管文件在web服務(wù)器的目錄下或在其它任何目錄下,都可以 利用jspsmartupload進(jìn)行下載。5、能將文件上傳到數(shù)據(jù)庫中,也能將數(shù)據(jù)庫中的數(shù)據(jù)下載下來。這種功能針對的是mysql數(shù) 據(jù)庫,因?yàn)椴痪哂型ㄓ眯?,所以本文不?zhǔn)備舉例介紹這種用法。jspsmartupload組件可以從 網(wǎng)站上自由下載,壓縮包的名字是jspsmartupload.zip。下載后,用winzip或winrar將其解壓 到tomcat的webapps目錄下(本文以tomcat服務(wù)器為例進(jìn)行介紹)。解壓后,將webapps/jspsmartupload目錄下的子目 錄web-inf名字改為全大寫的web-inf,這樣一改
3、jspsmartupload類才能使用。因?yàn)閠omcat對文件名大小寫敏感,它要求web 應(yīng)用程序相關(guān)的類所在目錄為web-inf,且必須是大寫。接著重新啟動(dòng)tomcat,這樣就可以在jsp文件中使用jspsmartupload組件 了。注意,按上述方法安裝后,只有webapps/jspsmartupload目錄下的程序可以使用jspsmartupload 組件,如果想讓tomcat服務(wù)器的所有web應(yīng)用程序都能用它,必須做如下工作:1進(jìn)入命令行狀態(tài),將目錄切換到tomcat的 webapps/jspsmartupload/web-inf目錄下。2運(yùn)行jar打包命令:jar cvf jspsm
4、artupload.jar com(也可以打開資源管理器,切換到當(dāng)前目錄,用winzip將com目錄下的所有文件壓縮成 jspsmartupload.zip,然后將jspsmartupload.zip換名為jspsmartupload.jar文件即可。)3 將jspsmartupload.jar拷貝到tomcat的shared/lib目錄下。二、相關(guān)類說明篇 file類這個(gè)類包裝了一個(gè)上傳文件的所有信息。通過它,可以得到上傳文件的文件名、文件大小、擴(kuò)展名、文件數(shù)據(jù)等信息。 file類主要提供以下方法:1、saveas作用:將文件換名另存。原型:public void saveas(java.l
5、ang.string destfilepathname)或public void saveas(java.lang.string destfilepathname, int optionsaveas)其 中,destfilepathname是另存的文件名,optionsaveas是另存的選項(xiàng),該選項(xiàng)有三個(gè)值,分別是 saveas_physical,saveas_virtual,saveas_auto。saveas_physical表明以操作系統(tǒng)的根目錄為文件 根目錄另存文件,saveas_virtual表明以web應(yīng)用程序的根目錄為文件根目錄另存文件,saveas_auto則表示讓組件決定,當(dāng)
6、web應(yīng) 用程序的根目錄存在另存文件的目錄時(shí),它會(huì)選擇saveas_virtual,否則會(huì)選擇saveas_physical。例如,saveas(/upload/sample.zip,saveas_physical)執(zhí)行后若web服務(wù)器安裝在c盤,則另存的文件名實(shí)際 是c:uploadsample.zip。而saveas(/upload/sample.zip,saveas_virtual)執(zhí)行后若 web應(yīng)用程序的根目錄是webapps/jspsmartupload,則另存的文件名實(shí)際是webapps/jspsmartupload /upload/sample.zip。saveas(/uplo
7、ad/sample.zip,saveas_auto)執(zhí)行時(shí)若web應(yīng)用程序根目 錄下存在upload目錄,則其效果同saveas(/upload/sample.zip,saveas_virtual),否則同 saveas(/upload/sample.zip,saveas_physical)。建議:對于web程序的開發(fā)來說,最好使 用saveas_virtual,以便移植。2、ismissing作用:這個(gè)方法用于判斷用戶是否選擇了文件,也即對 應(yīng)的表單項(xiàng)是否有值。選擇了文件時(shí),它返回false。未選文件時(shí),它返回true。原型:public boolean ismissing()3、getfi
8、eldname作用:取html表單中對應(yīng)于此上傳文件的表單項(xiàng)的名字。原 型:public string getfieldname()4、getfilename作用:取文件名(不含目錄信 息)原型:public string getfilename()5、getfilepathname作 用:取文件全名(帶目錄)原型:public string getfilepathname6、getfileext作 用:取文件擴(kuò)展名(后綴)原型:public string getfileext()7、getsize作 用:取文件長度(以字節(jié)計(jì))原型:public int getsize()8、getbinar
9、ydata作 用:取文件數(shù)據(jù)中指定位移處的一個(gè)字節(jié),用于檢測文件等處理。原型:public byte getbinarydata(int index)。其中,index表示位移,其值在0到getsize()-1之間。 files類這個(gè)類表示所有 上傳文件的集合,通過它可以得到上傳文件的數(shù)目、大小等信息。有以下方法:1、getcount作用:取得上傳文件的數(shù)目。原型:public int getcount()2、getfile作用:取得指定位移處的文件 對象file(這是com.jspsmart.upload.file,不是java.io.file,注意區(qū)分)。原型:public file ge
10、tfile(int index)。其中,index為指定位移,其值在0到getcount()-1之間。3、 getsize作用:取得上傳文件的總長度,可用于限制一次性上傳的數(shù)據(jù)量大小。原型:public long getsize()4、getcollection作用:將所有上傳文件對象以collection的形式返回,以便其 它應(yīng)用程序引用,瀏覽上傳文件信息。原型:public collection getcollection()5、 getenumeration作用:將所有上傳文件對象以enumeration(枚舉)的形式返回,以便其它應(yīng)用程序?yàn)g覽上傳文件信息。原型:public enume
11、ration getenumeration() request類這個(gè)類的功能等同于jsp內(nèi)置的對 象request。只所以提供這個(gè)類,是因?yàn)閷τ谖募蟼鞅韱?,通過request對象無法獲得表單項(xiàng)的值,必須通過jspsmartupload組件提 供的request對象來獲取。該類提供如下方法:1、getparameter作用:獲取指定參數(shù)之值。當(dāng)參數(shù)不存在 時(shí),返回值為null。原型:public string getparameter(string name)。其中,name為參數(shù)的名字。2、getparametervalues作用:當(dāng)一個(gè)參數(shù)可以有多個(gè)值時(shí), 用此方法來取其值。它返回的是一個(gè)
12、字符串?dāng)?shù)組。當(dāng)參數(shù)不存在時(shí),返回值為null。原型:public string getparametervalues(string name)。其中,name為參數(shù)的名字。3、 getparameternames作用:取得request對象中所有參數(shù)的名字,用于遍歷所有參數(shù)。它返回的是一個(gè)枚舉型的對象。原 型:public enumeration getparameternames() smartupload類這個(gè)類完成上傳下載工作。a上傳與下載共用的方法:只有一個(gè):initialize。作 用:執(zhí)行上傳下載的初始化工作,必須第一個(gè)執(zhí)行。原型:有多個(gè),主要使用下面這個(gè):public final
13、 void initialize(javax.servlet.jsp.pagecontext pagecontext)其 中,pagecontext為jsp頁面內(nèi)置對象(頁面上下文)。b上傳文件使用的方法:1、upload作 用:上傳文件數(shù)據(jù)。對于上傳操作,第一步執(zhí)行initialize方法,第二步就要執(zhí)行這個(gè)方法。原型:public void upload()2、save作用:將全部上傳文件保存到指定目錄下,并返回保存的文件個(gè)數(shù)。原 型:public int save(string destpathname)和public int save(string destpathname,int o
14、ption)其中,destpathname為文件保存目錄,option為保存選項(xiàng),它有三個(gè) 值,分別是save_physical,save_virtual和save_auto。(同file類的saveas方法的選項(xiàng)之值類 似)save_physical指示組件將文件保存到以操作系統(tǒng)根目錄為文件根目錄的目錄下,save_virtual指示組件將文件保存到以web應(yīng)用 程序根目錄為文件根目錄的目錄下,而save_auto則表示由組件自動(dòng)選擇。注:save(destpathname)作用等同于 save(destpathname,save_auto)。3、getsize作用:取上傳文件數(shù)據(jù)的總長度原
15、 型:public int getsize()4、getfiles作用:取全部上傳文件,以files對象形式返回, 可以利用files類的操作方法來獲得上傳文件的數(shù)目等信息。原型:public files getfiles()5、getrequest作用:取得request對象,以便由此對象獲得上傳表單參數(shù)之值。原型:public request getrequest()6、setallowedfileslist作用:設(shè)定允許上傳帶有指定擴(kuò)展 名的文件,當(dāng)上傳過程中有文件名不允許時(shí),組件將拋出異常。原型:public void setallowedfileslist(string allowe
16、dfileslist)其中,allowedfileslist為 允許上傳的文件擴(kuò)展名列表,各個(gè)擴(kuò)展名之間以逗號(hào)分隔。如果想允許上傳那些沒有擴(kuò)展名的文件,可以用兩個(gè)逗號(hào)表示。例 如:setallowedfileslist(doc,txt,)將允許上傳帶doc和txt擴(kuò)展名的文件以及沒有擴(kuò)展名的文件。7、 setdeniedfileslist作用:用于限制上傳那些帶有指定擴(kuò)展名的文件。若有文件擴(kuò)展名被限制,則上傳時(shí)組件將拋出異常。原 型:public void setdeniedfileslist(string deniedfileslist)其 中,deniedfileslist為禁止上傳的文件
17、擴(kuò)展名列表,各個(gè)擴(kuò)展名之間以逗號(hào)分隔。如果想禁止上傳那些沒有擴(kuò)展名的文件,可以用兩個(gè)逗號(hào)來表 示。例如:setdeniedfileslist(exe,bat,)將禁止上傳帶exe和bat擴(kuò)展名的文件以及沒有擴(kuò)展名的文件。8、 setmaxfilesize作用:設(shè)定每個(gè)文件允許上傳的最大長度。原型:public void setmaxfilesize(long maxfilesize)其中,maxfilesize為為每個(gè)文件允許上傳的最大長度,當(dāng)文 件超出此長度時(shí),將不被上傳。9、settotalmaxfilesize作用:設(shè)定允許上傳的文件的總長度,用于限制 一次性上傳的數(shù)據(jù)量大小。原型:pu
18、blic void settotalmaxfilesize(long totalmaxfilesize)其中,totalmaxfilesize為允許上傳的文件的總長度。c下載文件常 用的方法1、setcontentdisposition作用:將數(shù)據(jù)追加到mime文件頭的content- disposition域。jspsmartupload組件會(huì)在返回下載的信息時(shí)自動(dòng)填寫mime文件頭的content-disposition域, 如果用戶需要添加額外信息,請用此方法。原型:public void setcontentdisposition(string contentdisposition)其
19、中,contentdisposition為要添加的數(shù)據(jù)。如果 contentdisposition為null,則組件將自動(dòng)添加attachment;,以表明將下載的文件作為附件,結(jié)果是ie瀏覽器將會(huì)提示 另存文件,而不是自動(dòng)打開這個(gè)文件(ie瀏覽器一般根據(jù)下載的文件擴(kuò)展名決定執(zhí)行什么操作,擴(kuò)展名為doc的將用word程序打開,擴(kuò)展名為pdf的將用 acrobat程序打開,等等)。2、downloadfile作用:下載文件。原型:共有以下三個(gè)原 型可用,第一個(gè)最常用,后兩個(gè)用于特殊情況下的文件下載(如更改內(nèi)容類型,更改另存的文件名)。 public void downloadfile(strin
20、g sourcefilepathname)其中,sourcefilepathname為要下載 的文件名(帶目錄的文件全名) public void downloadfile(string sourcefilepathname,string contenttype)其 中,sourcefilepathname為要下載的文件名(帶目錄的文件全名),contenttype為內(nèi)容類型(mime格式的文件類型信息,可被 瀏覽器識(shí)別)。 public void downloadfile(string sourcefilepathname,string contenttype,string destfile
21、name)其 中,sourcefilepathname為要下載的文件名(帶目錄的文件全名),contenttype為內(nèi)容類型(mime格式的文件類型信息,可被 瀏覽器識(shí)別),destfilename為下載后默認(rèn)的另存文件名。三、文件上傳篇 表單要求對于上 傳文件的form表單,有兩個(gè)要求:1、method應(yīng)用post,即method=post。2、增加屬 性:enctype=multipart/form-data下面是一個(gè)用于上傳文件的form表單的例子: 上傳的例子1、上傳頁面upload.html本頁面提供表單,讓用戶選擇要上傳的文件,點(diǎn)擊上傳按鈕執(zhí)行上傳操 作。頁面源碼如下: 文件上傳&
22、nbsp;上傳文件選擇1、2、3、4、2、 上傳處理頁面do_upload.jsp本頁面執(zhí)行文件上傳操作。頁面源碼中詳細(xì)介紹了上傳方法的用法,在此不贅述了。頁 面源碼如下:文件上傳 處理頁面%/ 新建一個(gè)smartupload對象smartupload su = new smartupload();/ 上傳初始化su.initialize(pagecontext);/ 設(shè)定上傳限制/ 1.限制每個(gè)上傳文件的最大長度。/ su.setmaxfilesize(10000);/ 2.限制總上傳數(shù)據(jù)的長度。/ su.settotalmaxfilesize(20000);/ 3.設(shè)定允許上傳的文件(通過
23、擴(kuò)展名限制),僅允許doc,txt文件。/ su.setallowedfileslist(doc,txt);/ 4.設(shè)定禁止上傳的文件(通過擴(kuò)展名限制),禁止上傳帶有exe,bat,jsp,htm,html擴(kuò)展名的文件和沒有擴(kuò)展名的文件。/ su.setdeniedfileslist(exe,bat,jsp,htm,html,);/ 上傳文件su.upload();/ 將上傳文件全部保存到指定目錄int count = su.save(/upload);out.println(count+ 個(gè)文件上傳成功!);/ 利用request對象獲取參數(shù)之值out.println(test=+su.ge
24、trequest().getparameter(test)+);/ 逐一提取上傳文件信息,同時(shí)可保存文件。for (int i=0;isu.getfiles().getcount();i+)com.jspsmart.upload.file file = su.getfiles().getfile(i);/ 若文件不存在則繼續(xù)if (file.ismissing() continue;/ 顯示當(dāng)前文件信息out.println();out.println(表單項(xiàng)名 (fieldname)+ file.getfieldname() + );out.println(文件長度 (size) +file
25、.getsize() + );out.println(文件名 (filename)+ file.getfilename() + );out.println(文件擴(kuò)展名 (fileext)+ file.getfileext() + );out.println(文件全名 (filepathname)+ file.getfilepathname() + );out.println();/ 將文件另存(此處可以控制上傳后的文件名稱)/ file.saveas(/upload/ + myfile.getfilename();/ 另存到以web應(yīng)用程序的根目錄為文件根目錄的目錄下/ file.saveas
26、(/upload/ + myfile.getfilename(),su.save_virtual);/ 另存到操作系統(tǒng)的根目錄為文件根目錄的目錄下/ file.saveas(c:temp + myfile.getfilename(),su.save_physical);%四、 文件下載篇1、下載鏈接頁面download.html頁面源碼如下: 下載點(diǎn)擊下載2、 下載處理頁面do_download.jsp do_download.jsp展示了如何利用jspsmartupload組件來下載文件,從下面的源碼中就可以看到,下載何其簡單。源 碼如下:注 意,執(zhí)行下載的頁面,在java腳本范圍外(即之外
27、),不要包含html代碼、空格、回車或換行等字符,有的話將不能正確下載。不信的話,可以在上述源碼中%之間加入一個(gè) 換行符,再下載一下,保證出錯(cuò)。因?yàn)樗绊懥朔祷亟o瀏覽器的數(shù)據(jù)流,導(dǎo)致解析出錯(cuò)。3、如何下載中文文件jspsmartupload 雖然能下載文件,但對中文支持不足。若下載的文件名中有漢字,則瀏覽器在提示另存的文件名時(shí),顯示的是一堆亂碼,很掃人興。上面的例子就是這樣。(這個(gè)問 題也是眾多下載組件所存在的問題,很少有人解決,搜索不到相關(guān)資料,可嘆?。榱私ojspsmartupload組件增加下載中文文件的 支持,我對該組件進(jìn)行了研究,發(fā)現(xiàn)對返回給瀏覽器的另存文件名進(jìn)行utf-8編碼后,瀏
28、覽器便能正確顯示中文名字了。這是一個(gè)令人高興的發(fā)現(xiàn)。于是我對 jspsmartupload組件的smartupload類做了升級(jí)處理,增加了toutf8string這個(gè)方法,改動(dòng)部分源碼如下:public void downloadfile(string s, string s1, string s2, int i)throws servletexception, ioexception, smartuploadexceptionif(s = null)throw new illegalargumentexception(file + s + not found (1040).);if(s.e
29、quals()throw new illegalargumentexception(file + s + not found (1040).);if(!isvirtual(s) & m_denyphysicalpath)throw new securityexception(physical path isdenied (1035).);if(isvirtual(s)s = m_application.getrealpath(s);java.io.file file = new java.io.file(s);fileinputstream fileinputstream = new file
30、inputstream(file);long l = file.length();boolean flag = false;int k = 0;byte abyte0 = new bytei;if(s1 = null)m_response.setcontenttype(application/x-msdownload);elseif(s1.length() = 0)m_response.setcontenttype(application/x-msdownload);elsem_response.setcontenttype(s1);m_response.setcontentlength(in
31、t)l);m_contentdisposition = m_contentdisposition != null ?m_contentdisposition : attachment;if(s2 = null)m_response.setheader(content-disposition,m_contentdisposition + filename= +toutf8string(getfilename(s);elseif(s2.length() = 0)m_response.setheader(content-disposition,m_contentdisposition);elsem_
32、response.setheader(content-disposition,m_contentdisposition + filename= + toutf8string(s2);while(long)k l)int j = fileinputstream.read(abyte0, 0, i);k += j;m_response.getoutputstream().write(abyte0, 0, j);fileinputstream.close();/* 將文件名中的漢字轉(zhuǎn)為utf8編碼的串,以便下載時(shí)能正確顯示另存的文件名.* 縱橫軟件制作中心雨亦奇2003.08.01* param s
33、 原文件名* return 重新編碼后的文件名*/public static string toutf8string(string s) stringbuffer sb = new stringbuffer();for (int i=0;i= 0 & c = 255) sb.append(c); else byte b;try b = character.tostring(c).getbytes(utf-8); catch (exception ex) system.out.println(ex);b = new byte0; for (int j = 0; j b.length; j+) i
34、nt k = bj;if (k 0) k += 256;sb.append(% + integer.tohexstring(k).touppercase();return sb.tostring();注意源碼中粗體部分,原jspsmartupload組件對返回的文件未作任何處理,現(xiàn)在做了 編碼的轉(zhuǎn)換工作,將文件名轉(zhuǎn)換為utf-8形式的編碼形式。utf-8編碼對英文未作任何處理,對中文則需要轉(zhuǎn)換為%xx的形式。 toutf8string方法中,直接利用java語言提供的編碼轉(zhuǎn)換方法獲得漢字字符的utf-8編碼,之后將其轉(zhuǎn)換為%xx的形式。將 源碼編譯后打包成jspsmartupload.jar,
35、拷貝到tomcat的shared/lib目錄下(可為所有web應(yīng)用程序所共享),然后重啟 tomcat服務(wù)器就可以正常下載含有中文名字的文件了。另,toutf8string方法也可用于轉(zhuǎn)換含有中文的超級(jí)鏈接,以保證鏈接的有效,因?yàn)橛械?web服務(wù)器不支持中文鏈接。小結(jié):jspsmartupload組件是應(yīng)用jsp進(jìn)行b/s程序開發(fā)過程中經(jīng)常使用的上傳下載組件,它 使用簡單,方便?,F(xiàn)在我又為其加上了下載中文名字的文件的支持,真?zhèn)€是如虎添翼,必將贏得更多開發(fā)者的青睞。(出處:abc網(wǎng)絡(luò)學(xué)院) 節(jié)蒈螅羇芁薀羀芆芀螞螃膂艿螅罿肈莈蒄螁羄莈薆羇袀莇蝿螀羋莆蒈肅膄蒞薁袈肀莄蚃肅羆莃螅袆芅莂蒅蠆膁蒂薇裊肇蒁
36、蝕蚇羃蒀荿袃罿葿薂螆芇蒈蚄羈膃蕆螆螄聿蒆蒆罿羅蒆薈螂芄薅蝕羈膀薄螃螁肆薃蒂羆肂腿蚅衿羈腿螇肄芇膈蕆袇膃膇蕿肅聿膆蟻裊羅芅螄蚈芃芄蒃襖腿芄薆蚇膅芃螈羂肁節(jié)蒈螅羇芁薀羀芆芀螞螃膂艿螅罿肈莈蒄螁羄莈薆羇袀莇蝿螀羋莆蒈肅膄蒞薁袈肀莄蚃肅羆莃螅袆芅莂蒅蠆膁蒂薇裊肇蒁蝕蚇羃蒀荿袃罿葿薂螆芇蒈蚄羈膃蕆螆螄聿蒆蒆罿羅蒆薈螂芄薅蝕羈膀薄螃螁肆薃蒂羆肂腿蚅衿羈腿螇肄芇膈蕆袇膃膇蕿肅聿膆蟻裊羅芅螄蚈芃芄蒃襖腿芄薆蚇膅芃螈羂肁節(jié)蒈螅羇芁薀羀芆芀螞螃膂艿螅罿肈莈蒄螁羄莈薆羇袀莇蝿螀羋莆蒈肅膄蒞薁袈肀莄蚃肅羆莃螅袆芅莂蒅蠆膁蒂薇裊肇蒁蝕蚇羃蒀荿袃罿葿薂螆芇蒈蚄羈膃蕆螆螄聿蒆蒆罿羅蒆薈螂芄薅蝕羈膀薄螃螁肆薃蒂羆肂腿蚅衿羈腿
37、螇肄芇膈蕆袇膃膇蕿肅聿膆蟻裊羅芅螄蚈芃芄蒃襖腿芄薆蚇膅芃螈羂肁節(jié)蒈螅羇芁薀羀芆芀螞螃膂艿螅罿肈莈蒄螁羄莈薆羇袀莇蝿螀羋莆蒈肅膄蒞薁袈肀莄蚃肅羆莃螅袆芅莂蒅蠆膁蒂薇裊肇蒁蝕蚇羃蒀荿袃罿葿薂螆芇蒈蚄羈膃蕆螆螄聿蒆蒆罿羅蒆薈螂芄薅蝕羈膀薄螃螁肆薃蒂羆肂腿蚅衿羈腿螇肄芇膈蕆袇膃膇蕿肅聿膆蟻裊羅芅螄蚈芃芄蒃襖腿芄薆蚇膅芃螈羂肁節(jié)蒈螅羇芁薀羀芆芀螞螃膂艿螅罿肈莈蒄螁羄莈薆羇袀莇蝿螀羋莆蒈肅膄蒞薁袈肀莄蚃肅羆莃螅袆芅莂蒅蠆膁蒂薇裊肇蒁蝕蚇羃蒀荿袃罿葿薂螆芇蒈蚄羈膃蕆螆螄聿蒆蒆罿羅蒆薈螂芄薅蝕羈膀薄螃螁肆薃蒂羆肂腿蚅衿羈腿螇肄芇膈蕆袇膃膇蕿肅聿膆蟻裊羅芅螄蚈芃芄蒃襖腿芄薆蚇膅芃螈羂肁節(jié)蒈螅羇芁薀羀芆芀螞螃膂艿
38、螅罿肈莈蒄螁羄莈薆羇袀莇蝿螀羋莆蒈肅膄蒞薁袈肀莄蚃肅羆莃螅袆芅莂蒅蠆膁蒂薇裊肇蒁蝕蚇羃蒀荿袃罿葿薂螆芇蒈蚄羈膃蕆螆螄聿蒆蒆罿羅蒆薈螂芄薅蝕羈膀薄螃螁肆薃蒂羆肂腿蚅衿羈腿螇肄芇膈蕆袇膃膇蕿肅聿膆蟻裊羅芅螄蚈芃芄蒃襖腿芄薆蚇膅芃螈羂肁節(jié)蒈螅羇芁薀羀芆芀螞螃膂艿螅罿肈莈蒄螁羄莈薆羇袀莇蝿螀羋莆蒈肅膄蒞薁袈肀莄蚃肅羆莃螅袆芅莂蒅蠆膁蒂薇裊肇蒁蝕蚇羃蒀荿袃罿葿薂螆芇蒈蚄羈膃蕆螆螄聿蒆蒆罿羅蒆薈螂芄薅蝕羈膀薄螃螁肆薃蒂羆肂腿蚅衿羈腿螇肄芇膈蕆袇膃膇蕿肅聿膆蟻裊羅芅螄蚈芃芄蒃襖腿芄薆蚇膅芃螈羂肁節(jié)蒈螅羇芁薀羀芆芀螞螃膂艿螅罿肈莈蒄螁羄莈薆羇袀莇蝿螀羋莆蒈肅膄蒞薁袈肀莄蚃肅羆莃螅袆芅莂蒅蠆膁蒂薇裊肇蒁蝕蚇羃蒀
39、荿袃罿葿薂螆芇蒈蚄羈膃蕆螆螄聿蒆蒆罿羅蒆薈螂芄薅蝕羈膀薄螃螁肆薃蒂羆肂腿蚅衿羈腿螇肄芇膈蕆袇膃膇蕿肅聿膆蟻裊羅芅螄蚈芃芄蒃襖腿芄薆蚇膅芃螈羂肁節(jié)蒈螅羇芁薀羀芆芀螞螃膂艿螅罿肈莈蒄螁羄莈薆羇袀莇蝿螀羋莆蒈肅膄蒞薁袈肀莄蚃肅羆莃螅袆芅莂蒅蠆膁蒂薇裊肇蒁蝕蚇羃蒀荿袃罿葿薂螆芇蒈蚄羈膃蕆螆螄聿蒆蒆罿羅蒆薈螂芄薅蝕羈膀薄螃螁肆薃蒂羆肂腿蚅衿羈腿螇肄芇膈蕆袇膃膇蕿肅聿膆蟻裊羅芅螄蚈芃芄蒃襖腿芄薆蚇膅芃螈羂肁節(jié)蒈螅羇芁薀羀芆芀螞螃膂艿螅罿肈莈蒄螁羄莈薆羇袀莇蝿螀羋莆蒈肅膄蒞薁袈肀莄蚃肅羆莃螅袆芅莂蒅蠆膁蒂薇裊肇蒁蝕蚇羃蒀荿袃罿葿薂螆芇蒈蚄羈膃蕆螆螄聿蒆蒆罿羅蒆薈螂芄薅蝕羈膀薄螃螁肆薃蒂羆肂腿蚅衿羈腿螇肄芇膈
40、蕆袇膃膇蕿肅聿膆蟻裊羅芅螄蚈芃芄蒃襖腿芄薆蚇膅芃螈羂肁節(jié)蒈螅羇芁薀羀芆芀螞螃膂艿螅罿肈莈蒄螁羄莈薆羇袀莇蝿螀羋莆蒈肅膄蒞薁袈肀莄蚃肅羆莃螅袆芅莂蒅蠆膁蒂薇裊肇蒁蝕蚇羃蒀荿袃罿葿薂螆芇蒈蚄羈膃蕆螆螄聿蒆蒆罿羅蒆薈螂芄薅蝕羈膀薄螃螁肆薃蒂羆肂腿蚅衿羈腿螇肄芇膈蕆袇膃膇蕿肅聿膆蟻裊羅芅螄蚈芃芄蒃襖腿芄薆蚇膅芃螈羂肁節(jié)蒈螅羇芁薀羀芆芀螞螃膂艿螅罿肈莈蒄螁羄莈薆羇袀莇蝿螀羋莆蒈肅膄蒞薁袈肀莄蚃肅羆莃螅袆芅莂蒅蠆膁蒂薇裊肇蒁蝕蚇羃蒀荿袃罿葿薂螆芇蒈蚄羈膃蕆螆螄聿蒆蒆罿羅蒆薈螂芄薅蝕羈膀薄螃螁肆薃蒂羆肂腿蚅衿羈腿螇肄芇膈蕆袇膃膇蕿肅聿膆蟻裊羅芅螄蚈芃芄蒃襖腿芄薆蚇膅芃螈羂肁節(jié)蒈螅羇芁薀羀芆芀螞螃膂艿螅罿肈莈
41、蒄螁羄莈薆羇袀莇蝿螀羋莆蒈肅膄蒞薁袈肀莄蚃肅羆莃螅袆芅莂蒅蠆膁蒂薇裊肇蒁蝕蚇羃蒀荿袃罿葿薂螆芇蒈蚄羈膃蕆螆螄聿蒆蒆罿羅蒆薈螂芄薅蝕羈膀薄螃螁肆薃蒂羆肂腿蚅衿羈腿螇肄芇膈蕆袇膃膇蕿肅聿膆蟻裊羅芅螄蚈芃芄蒃襖腿芄薆蚇膅芃螈羂肁節(jié)蒈螅羇芁薀羀芆芀螞螃膂艿螅罿肈莈蒄螁羄莈薆羇袀莇蝿螀羋莆蒈肅膄蒞薁袈肀莄蚃肅羆莃螅袆芅莂蒅蠆膁蒂薇裊肇蒁蝕蚇羃蒀荿袃罿葿薂螆芇蒈蚄羈膃蕆螆螄聿蒆蒆罿羅蒆薈螂芄薅蝕羈膀薄螃螁肆薃蒂羆肂腿蚅衿羈腿螇肄芇膈蕆袇膃膇蕿肅聿膆蟻裊羅芅螄蚈芃芄蒃襖腿芄薆蚇膅芃螈羂肁節(jié)蒈螅羇芁薀羀芆芀螞螃膂艿螅罿肈莈蒄螁羄莈薆羇袀莇蝿螀羋莆蒈肅膄蒞薁袈肀莄蚃肅羆莃螅袆芅莂蒅蠆膁蒂薇裊肇蒁蝕蚇羃蒀荿袃罿葿
42、薂螆芇蒈蚄羈膃蕆螆螄聿蒆蒆罿羅蒆薈螂芄薅蝕羈膀薄螃螁肆薃蒂羆肂腿蚅衿羈腿螇肄芇膈蕆袇膃膇蕿肅聿膆蟻裊羅芅螄蚈芃芄蒃襖腿芄薆蚇膅芃螈羂肁節(jié)蒈螅羇芁薀羀芆芀螞螃膂艿螅罿肈莈蒄螁羄莈薆羇袀莇蝿螀羋莆蒈肅膄蒞薁袈肀莄蚃肅羆莃螅袆芅莂蒅蠆膁蒂薇裊肇蒁蝕蚇羃蒀荿袃罿葿薂螆芇蒈蚄羈膃蕆螆螄聿蒆蒆罿羅蒆薈螂芄薅蝕羈膀薄螃螁肆薃蒂羆肂腿蚅衿羈腿螇肄芇膈蕆袇膃膇蕿肅聿膆蟻裊羅芅螄蚈芃芄蒃襖腿芄薆蚇膅芃螈羂肁節(jié)蒈螅羇芁薀羀芆芀螞螃膂艿螅罿肈莈蒄螁羄莈薆羇袀莇蝿螀羋莆蒈肅膄蒞薁袈肀莄蚃肅羆莃螅袆芅莂蒅蠆膁蒂薇裊肇蒁蝕蚇羃蒀荿袃罿葿薂螆芇蒈蚄羈膃蕆螆螄聿蒆蒆罿羅蒆薈螂芄薅蝕羈膀薄螃螁肆薃蒂羆肂腿蚅衿羈腿螇肄芇膈蕆袇膃膇
43、蕿肅聿膆蟻裊羅芅螄蚈芃芄蒃襖腿芄薆蚇膅芃螈羂肁節(jié)蒈螅羇芁薀羀芆芀螞螃膂艿螅罿肈莈蒄螁羄莈薆羇袀莇蝿螀羋莆蒈肅膄蒞薁袈肀莄蚃肅羆莃螅袆芅莂蒅蠆膁蒂薇裊肇蒁蝕蚇羃蒀荿袃罿葿薂螆芇蒈蚄羈膃蕆螆螄聿蒆蒆罿羅蒆薈螂芄薅蝕羈膀薄螃螁肆薃蒂羆肂腿蚅衿羈腿螇肄芇膈蕆袇膃膇蕿肅聿膆蟻裊羅芅螄蚈芃芄蒃襖腿芄薆蚇膅芃螈羂肁節(jié)蒈螅羇芁薀羀芆芀螞螃膂艿螅罿肈莈蒄螁羄莈薆羇袀莇蝿螀羋莆蒈肅膄蒞薁袈肀莄蚃肅羆莃螅袆芅莂蒅蠆膁蒂薇裊肇蒁蝕蚇羃蒀荿袃罿葿薂螆芇蒈蚄羈膃蕆螆螄聿蒆蒆罿羅蒆薈螂芄薅蝕羈膀薄螃螁肆薃蒂羆肂腿蚅衿羈腿螇肄芇膈蕆袇膃膇蕿肅聿膆蟻裊羅芅螄蚈芃芄蒃襖腿芄薆蚇膅芃螈羂肁節(jié)蒈螅羇芁薀羀芆芀螞螃膂艿螅罿肈莈蒄螁羄莈
44、薆羇袀莇蝿螀羋莆蒈肅膄蒞薁袈肀莄蚃肅羆莃螅袆芅莂蒅蠆膁蒂薇裊肇蒁蝕蚇羃蒀荿袃罿葿薂螆芇蒈蚄羈膃蕆螆螄聿蒆蒆罿羅蒆薈螂芄薅蝕羈膀薄螃螁肆薃蒂羆肂腿蚅衿羈腿螇肄芇膈蕆袇膃膇蕿肅聿膆蟻裊羅芅螄蚈芃芄蒃襖腿芄薆蚇膅芃螈羂肁節(jié)蒈螅羇芁薀羀芆芀螞螃膂艿螅罿肈莈蒄螁羄莈薆羇袀莇蝿螀羋莆蒈肅膄蒞薁袈肀莄蚃肅羆莃螅袆芅莂蒅蠆膁蒂薇裊肇蒁蝕蚇羃蒀荿袃罿葿薂螆芇蒈蚄羈膃蕆螆螄聿蒆蒆罿羅蒆薈螂芄薅蝕羈膀薄螃螁肆薃蒂羆肂腿蚅衿羈腿螇肄芇膈蕆袇膃膇蕿肅聿膆蟻裊羅芅螄蚈芃芄蒃襖腿芄薆蚇膅芃螈羂肁節(jié)蒈螅羇芁薀羀芆芀螞螃膂艿螅罿肈莈蒄螁羄莈薆羇袀莇蝿螀羋莆蒈肅膄蒞薁袈肀莄蚃肅羆莃螅袆芅莂蒅蠆膁蒂薇裊肇蒁蝕蚇羃蒀荿袃罿葿薂螆芇蒈
45、蚄羈膃蕆螆螄聿蒆蒆罿羅蒆薈螂芄薅蝕羈膀薄螃螁肆薃蒂羆肂腿蚅衿羈腿螇肄芇膈蕆袇膃膇蕿肅聿膆蟻裊羅芅螄蚈芃芄蒃襖腿芄薆蚇膅芃螈羂肁節(jié)蒈螅羇芁薀羀芆芀螞螃膂艿螅罿肈莈蒄螁羄莈薆羇袀莇蝿螀羋莆蒈肅膄蒞薁袈肀莄蚃肅羆莃螅袆芅莂蒅蠆膁蒂薇裊肇蒁蝕蚇羃蒀荿袃罿葿薂螆芇蒈蚄羈膃蕆螆螄聿蒆蒆罿羅蒆薈螂芄薅蝕羈膀薄螃螁肆薃蒂羆肂腿蚅衿羈腿螇肄芇膈蕆袇膃膇蕿肅聿膆蟻裊羅芅螄蚈芃芄蒃襖腿芄薆蚇膅芃螈羂肁節(jié)蒈螅羇芁薀羀芆芀螞螃膂艿螅罿肈莈蒄螁羄莈薆羇袀莇蝿螀羋莆蒈肅膄蒞薁袈肀莄蚃肅羆莃螅袆芅莂蒅蠆膁蒂薇裊肇蒁蝕蚇羃蒀荿袃罿葿薂螆芇蒈蚄羈膃蕆螆螄聿蒆蒆罿羅蒆薈螂芄薅蝕羈膀薄螃螁肆薃蒂羆肂腿蚅衿羈腿螇肄芇膈蕆袇膃膇蕿肅聿膆
46、蟻裊羅芅螄蚈芃芄蒃襖腿芄薆蚇膅芃螈羂肁節(jié)蒈螅羇芁薀羀芆芀螞螃膂艿螅罿肈莈蒄螁羄莈薆羇袀莇蝿螀羋莆蒈肅膄蒞薁袈肀莄蚃肅羆莃螅袆芅莂蒅蠆膁蒂薇裊肇蒁蝕蚇羃蒀荿袃罿葿薂螆芇蒈蚄羈膃蕆螆螄聿蒆蒆罿羅蒆薈螂芄薅蝕羈膀薄螃螁肆薃蒂羆肂腿蚅衿羈腿螇肄芇膈蕆袇膃膇蕿肅聿膆蟻裊羅芅螄蚈芃芄蒃襖腿芄薆蚇膅芃螈羂肁節(jié)蒈螅羇芁薀羀芆芀螞螃膂艿螅罿肈莈蒄螁羄莈薆羇袀莇蝿螀羋莆蒈肅膄蒞薁袈肀莄蚃肅羆莃螅袆芅莂蒅蠆膁蒂薇裊肇蒁蝕蚇羃蒀荿袃罿葿薂螆芇蒈蚄羈膃蕆螆螄聿蒆蒆罿羅蒆薈螂芄薅蝕羈膀薄螃螁肆薃蒂羆肂腿蚅衿羈腿螇肄芇膈蕆袇膃膇蕿肅聿膆蟻裊羅芅螄蚈芃芄蒃襖腿芄薆蚇膅芃螈羂肁節(jié)蒈螅羇芁薀羀芆芀螞螃膂艿螅罿肈莈蒄螁羄莈薆羇袀莇
47、蝿螀羋莆蒈肅膄蒞薁袈肀莄蚃肅羆莃螅袆芅莂蒅蠆膁蒂薇裊肇蒁蝕蚇羃蒀荿袃罿葿薂螆芇蒈蚄羈膃蕆螆螄聿蒆蒆罿羅蒆薈螂芄薅蝕羈膀薄螃螁肆薃蒂羆肂腿蚅衿羈腿螇肄芇膈蕆袇膃膇蕿肅聿膆蟻裊羅芅螄蚈芃芄蒃襖腿芄薆蚇膅芃螈羂肁節(jié)蒈螅羇芁薀羀芆芀螞螃膂艿螅罿肈莈蒄螁羄莈薆羇袀莇蝿螀羋莆蒈肅膄蒞薁袈肀莄蚃肅羆莃螅袆芅莂蒅蠆膁蒂薇裊肇蒁蝕蚇羃蒀荿袃罿葿薂螆芇蒈蚄羈膃蕆螆螄聿蒆蒆罿羅蒆薈螂芄薅蝕羈膀薄螃螁肆薃蒂羆肂腿蚅衿羈腿螇肄芇膈蕆袇膃膇蕿肅聿膆蟻裊羅芅螄蚈芃芄蒃襖腿芄薆蚇膅芃螈羂肁節(jié)蒈螅羇芁薀羀芆芀螞螃膂艿螅罿肈莈蒄螁羄莈薆羇袀莇蝿螀羋莆蒈肅膄蒞薁袈肀莄蚃肅羆莃螅袆芅莂蒅蠆膁蒂薇裊肇蒁蝕蚇羃蒀荿袃罿葿薂螆芇蒈蚄羈膃蕆螆螄聿蒆蒆罿羅蒆薈
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025合同模板學(xué)校食堂承包經(jīng)營合同范本
- Unit2 He's cool(說課稿)2023-2024學(xué)年外研版(三起)四年級(jí)下冊
- 2025合同模板工程的變更范本
- 2025江蘇:安全責(zé)任寫進(jìn)集體合同模板范本
- Unit1 School(說課稿)-2024-2025人教版(新起點(diǎn))英語一年級(jí)上冊
- 2023七年級(jí)語文上冊 第四單元 綜合性學(xué)習(xí) 少年正是讀書時(shí)說課稿 新人教版
- Unit5 I'm cleaning my room(說課稿)-2023-2024學(xué)年人教精通版英語五年級(jí)下冊001
- 2024年九年級(jí)語文下冊 第二單元 第5課 孔乙己說課稿 新人教版
- 2024-2025學(xué)年高中化學(xué)下學(xué)期第20周 常見氣體的制備說課稿
- Unit 1 people of achievement Reading for writing 說課稿-2024-2025學(xué)年高中英語人教版(2019)選擇性必修第一冊
- 高處作業(yè)安全教育培訓(xùn)講義課件
- dk膠原蛋白培訓(xùn)課件
- 萬科物業(yè)管理公司全套制度(2016版)
- 動(dòng)物檢疫技術(shù)-動(dòng)物檢疫處理(動(dòng)物防疫與檢疫技術(shù))
- 英語經(jīng)典口語1000句
- 進(jìn)模模具設(shè)計(jì)
- 完整,滬教版小學(xué)四年級(jí)英語上冊單詞表
- 2021年高考化學(xué)真題和模擬題分類匯編專題20工業(yè)流程題含解析
- 2023年北京市高考作文評(píng)分標(biāo)準(zhǔn)及優(yōu)秀、滿分作文
- 2023年大唐尿素投標(biāo)文件
- 縮窄性心包炎課件
評(píng)論
0/150
提交評(píng)論