文件上傳在web應(yīng)用中非常普遍,要在jsp環(huán)境中實(shí)現(xiàn)文件上傳功能是非常容易的,因?yàn)榫W(wǎng)上有許多用java開(kāi)發(fā)的文件上傳組件,本文以commons-fileupload組件為例,為jsp應(yīng)用添加文件上傳功能。 common-fileupload組件是apache的一個(gè)開(kāi)源項(xiàng)目之一,可以從 } OutputStream out = response.getOutputStream(); while((len = br.read(buf)) >0) out.write(buf,0,len); br.close(); out.close(); } smartUpload: 上傳:在unix/linux系統(tǒng)上,如果上傳格式文檔,如Wrod,Excel等文檔,很多時(shí)候打開(kāi)文檔出錯(cuò)。 原因:EOF處理沒(méi)有判斷。 下載:更不用說(shuō)了,基本上都會(huì)出錯(cuò),下載時(shí)會(huì)比原文件多出N多個(gè)字節(jié)。你看看它自帶的例子就知道了。下載時(shí)一定要這樣寫(xiě): <%@page xxxxxx%><% smartUpload smu= ............ 如果前面有共它任何指令語(yǔ)句或動(dòng)作語(yǔ)句寫(xiě)在多行而沒(méi)有在一行(有病啊,我要是inclide n多個(gè)文件都不能分行),那下載的文件肯定有問(wèn)題。 原因:jsp在編譯時(shí)默認(rèn)了文檔類型并有默認(rèn)輸出,而smartUpload在輸出要下載的文檔之前沒(méi)有清空。 |